§
    
Á³gb  ã                   óò  — d Z ddlZddlZddlZddlZddlmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZ ddlmZ dd	lmZmZ dd
lmZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z& ddl'm(Z(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB  ejC        eD¦  «        ZEde/de-dedeFdeFdefd„ZGd e!d!eHd"eIddfd#„ZJ G d$„ d%¦  «        ZK	 	 d/d e!d&e&d'e	eH         d(e	e4         deKf
d)„ZL	 d/d e!d'e	eH         d(e	e4         deKfd*„ZM	 	 d/d e!d!eHd&e&d"eId'e	eH         d(e	e4         de	eK         fd+„ZNd e!d'eHd(e	e4         de	eH         fd,„ZO G d-„ d.¦  «        ZPdS )0z)Prepares a distribution for installation
é    N)ÚDictÚIterableÚListÚOptional)Úcanonicalize_name)Ú)make_distribution_for_install_requirement)ÚInstalledDistribution)ÚDirectoryUrlHashUnsupportedÚHashMismatchÚHashUnpinnedÚInstallationErrorÚMetadataInconsistentÚNetworkConnectionErrorÚPreviousBuildDirErrorÚVcsHashUnsupported)ÚPackageFinder)ÚBaseDistributionÚget_metadata_distribution)ÚArchiveInfo)ÚLink)ÚWheel)ÚBatchDownloaderÚ
Downloader)ÚHTTPRangeRequestUnsupportedÚdist_from_wheel_url)Ú
PipSession)ÚBuildTracker)ÚInstallRequirement)Údirect_url_for_editableÚdirect_url_from_link)ÚHashesÚMissingHashes)Ú
indent_log)Údisplay_pathÚ	hash_fileÚhide_urlÚis_installable_dir)ÚTempDirectory)Úunpack_file)ÚvcsÚreqÚbuild_trackerÚfinderÚbuild_isolationÚcheck_build_depsÚreturnc                 óÐ   — t          | ¦  «        }|                     | ¦  «        5  |                     |||¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «         S )z(Prepare a distribution for installation.N)r   ÚtrackÚprepare_distribution_metadatar   )r+   r,   r-   r.   r/   Úabstract_dists         ú^/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_internal/operations/prepare.pyÚ_get_prepared_distributionr6   ;   s®   € õ >¸cÑBÔB€MØ	×	Ò	˜SÑ	!Ô	!ð 
ð 
Ø×3Ò3Ø�OÐ%5ñ	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð ×2Ò2Ñ4Ô4Ð4s   ¥A	Á	AÁAÚlinkÚlocationÚ	verbosityc                 ó”   — t          j        | j        ¦  «        }|€J ‚|                     |t	          | j        ¦  «        |¬¦  «         d S )N)Úurlr9   )r*   Úget_backend_for_schemeÚschemeÚunpackr&   r;   )r7   r8   r9   Úvcs_backends       r5   Úunpack_vcs_linkr@   K   sK   € ÝÔ,¨T¬[Ñ9Ô9€KØÐ"Ð"Ð"Ø×Ò�x¥X¨d¬hÑ%7Ô%7À9ÐÑMÔMÐMÐMÐMó    c                   ó.   — e Zd Zdedee         ddfd„ZdS )ÚFileÚpathÚcontent_typer0   Nc                 óh   — || _         |€!t          j        |¦  «        d         | _        d S || _        d S )Nr   )rD   Ú	mimetypesÚ
guess_typerE   )ÚselfrD   rE   s      r5   Ú__init__zFile.__init__R   s;   € ØˆŒ	ØÐÝ )Ô 4°TÑ :Ô :¸1Ô =ˆDÔÐÐà ,ˆDÔÐÐrA   )Ú__name__Ú
__module__Ú__qualname__Ústrr   rJ   © rA   r5   rC   rC   Q   sA   € € € € € ð-˜Sð -°¸´ð -À$ð -ð -ð -ð -ð -ð -rA   rC   ÚdownloadÚdownload_dirÚhashesc                 óÒ   — t          dd¬¦  «        }d }|rt          | ||¦  «        }|r|}d }n+ || |j        ¦  «        \  }}|r|                     |¦  «         t	          ||¦  «        S )Nr>   T©ÚkindÚglobally_managed)r(   Ú_check_download_dirrD   Úcheck_against_pathrC   )r7   rP   rQ   rR   Útemp_dirÚalready_downloaded_pathÚ	from_pathrE   s           r5   Úget_http_urlr\   Z   s‘   € õ  (¸TÐBÑBÔB€Hà"ÐØð RÝ"5°d¸LÈ&Ñ"QÔ"QÐàð 1Ø+ˆ	Øˆˆð #+ (¨4°´Ñ"?Ô"?Ñˆ	�<Øð 	1Ø×%Ò% iÑ0Ô0Ð0å�	˜<Ñ(Ô(Ð(rA   c                 ó’   — d}|rt          | ||¦  «        }|r|}n| j        }|r|                     |¦  «         t          |d¦  «        S )z'Get file and optionally check its hash.N)rW   Ú	file_pathrX   rC   )r7   rQ   rR   rZ   r[   s        r5   Úget_file_urlr_   r   si   € ð
 #ÐØð RÝ"5°d¸LÈ&Ñ"QÔ"QÐàð #Ø+ˆ	ˆ	à”Nˆ	ð ð -Ø×!Ò! )Ñ,Ô,Ð,Ý�	˜4Ñ Ô Ð rA   c                 ó  — | j         rt          | ||¬¦  «         dS |                      ¦   «         rJ ‚| j        rt	          | ||¬¦  «        }nt          | |||¬¦  «        }| j        st          |j        ||j	        ¦  «         |S )a_  Unpack link into location, downloading if required.

    :param hashes: A Hashes object, one of whose embedded hashes must match,
        or HashMismatch will be raised. If the Hashes is empty, no matches are
        required, and unhashable types of requirements (like VCS ones, which
        would ordinarily raise HashUnsupported) are allowed.
    )r9   N©rR   )
Úis_vcsr@   Úis_existing_dirÚis_filer_   r\   Úis_wheelr)   rD   rE   )r7   r8   rP   r9   rQ   rR   Úfiles          r5   Ú
unpack_urlrg   Š   s¬   € ð  „{ð Ý˜˜h°)Ð<Ñ<Ô<Ð<Øˆtà×#Ò#Ñ%Ô%Ð%Ð%Ð%ð „|ð 

Ý˜D ,°vÐ>Ñ>Ô>ˆˆõ ØØØØð	
ñ 
ô 
ˆð Œ=ð <Ý�D”I˜x¨Ô):Ñ;Ô;Ð;à€KrA   c                 óz  — t           j                             || j        ¦  «        }t           j                             |¦  «        sdS t
                               d|¦  «         |rW	 |                     |¦  «         n@# t          $ r3 t
           	                    d|¦  «         t          j
        |¦  «         Y dS w xY w|S )z�Check download_dir for previously downloaded file with correct hash
    If a correct file is found return its path else None
    NzFile was already downloaded %sz;Previously-downloaded file %s has bad hash. Re-downloading.)ÚosrD   ÚjoinÚfilenameÚexistsÚloggerÚinforX   r   ÚwarningÚunlink)r7   rQ   rR   Údownload_paths       r5   rW   rW   µ   sÉ   € õ ”G—L’L ¨t¬}Ñ=Ô=€MåŒ7�>Š>˜-Ñ(Ô(ð Øˆtõ ‡K‚KÐ0°-Ñ@Ô@Ð@Øð 	ð	Ø×%Ò% mÑ4Ô4Ð4Ð4øÝð 	ð 	ð 	Ý�NŠNØMØñô ð õ ŒI�mÑ$Ô$Ð$Ø�4�4ð	øøøð Ðs   Á%A; Á;9B8Â7B8c                   ó˜  ‡ — e Zd ZdZdedee         dededededed	ed
e	dededede
ddfˆ fd„Zdeddfd„Zdededdfd„Zdedefd„Zdedee         fd„Zdedee         fd„Zdedee         fd„Z	 d&dee         deddfd„Z	 d&dededefd„Z	 d&dee         deddfd „Zdededefd!„Zdeddfd"„Zdedefd#„Zded$edefd%„Zˆ xZS )'ÚRequirementPreparerzPrepares a RequirementÚ	build_dirrQ   Úsrc_dirr.   r/   r,   ÚsessionÚprogress_barr-   Úrequire_hashesÚuse_user_siteÚ
lazy_wheelr9   r0   Nc                 ó`  •— t          ¦   «                              ¦   «          || _        || _        || _        || _        t          ||¦  «        | _        t          ||¦  «        | _	        |	| _
        || _        || _        || _        |
| _        || _        || _        || _        i | _        d| _        d S )N)Ú r|   )ÚsuperrJ   ru   rt   r,   Ú_sessionr   Ú	_downloadr   Ú_batch_downloadr-   rQ   r.   r/   rx   ry   Úuse_lazy_wheelr9   Ú_downloadedÚ_previous_requirement_header)rI   rt   rQ   ru   r.   r/   r,   rv   rw   r-   rx   ry   rz   r9   Ú	__class__s                 €r5   rJ   zRequirementPreparer.__init__Ò   sÁ   ø€ õ  	‰Œ×ÒÑÔÐàˆŒØ"ˆŒØ*ˆÔØˆŒÝ# G¨\Ñ:Ô:ˆŒÝ.¨w¸ÑEÔEˆÔØˆŒð )ˆÔð  /ˆÔð !1ˆÔð -ˆÔð +ˆÔð )ˆÔð #ˆŒð ,.ˆÔð -5ˆÔ)Ð)Ð)rA   r+   c                 óº  — |j         j        r0|j        s)d}t          t	          |j         j        ¦  «        ¦  «        }nd}t          |j        p|¦  «        }||f| j        k    r$||f| _        t           	                    ||¦  «         |j        rNt          ¦   «         5  t           	                    d|j         j        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS )z3Provide context for the requirement being prepared.zProcessing %szCollecting %szUsing cached %sN)r7   rd   Úoriginal_link_is_in_wheel_cacherN   r$   r^   r+   rƒ   rm   rn   r#   rk   )rI   r+   ÚmessageÚinformations       r5   Ú_log_preparing_linkz'RequirementPreparer._log_preparing_link  s:  € àŒ8Ôð 	. CÔ$Gð 	.Ø%ˆGÝ�l¨3¬8Ô+=Ñ>Ô>Ñ?Ô?ˆKˆKà%ˆGÝ˜cœg˜n¨Ñ-Ô-ˆKà�[Ð! TÔ%FÒFÐFØ18¸+Ð0FˆDÔ-Ý�KŠK˜ Ñ-Ô-Ð-àÔ.ð 	BÝ‘”ð Bð BÝ—’Ð-¨s¬xÔ/@ÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bð	Bð 	Bs   Â&CÃCÃCÚparallel_buildsc                 ó>  — |j         j        rdS |j        �J ‚|j                              ¦   «         r|j         j        |_        dS |                     | j        d|¬¦  «         t          |j        ¦  «        r(t          d 	                    ||j        ¦  «        ¦  «        ‚dS )z1Ensure source_dir of a linked InstallRequirement.NT)Ú
autodeleterŠ   zípip can't proceed with requirements '{}' due to apre-existing build directory ({}). This is likely due to a previous installation that failed . pip is being responsible and not assuming it can delete this. Please delete it and try again.)
r7   re   Ú
source_dirrc   r^   Úensure_has_source_dirrt   r'   r   Úformat)rI   r+   rŠ   s      r5   Ú_ensure_link_req_src_dirz,RequirementPreparer._ensure_link_req_src_dir  s¿   € ð
 Œ8Ôð 	ð ˆFØŒ~Ð%Ð%Ð%ØŒ8×#Ò#Ñ%Ô%ð 	à œXÔ/ˆCŒNØˆFð 	×!Ò!ØŒNØØ+ð 	"ñ 	
ô 	
ð 	
õ ˜cœnÑ-Ô-ð 	Ý'ð2÷ 39²&¸¸c¼nÑ2MÔ2Mñô ð ð	ð 	rA   c                 ó>  — | j         s|                     d¬¦  «        S |j        j        rt	          ¦   «         ‚|j                             ¦   «         rt          ¦   «         ‚|j        €|j        st          ¦   «         ‚|                     d¬¦  «        pt          ¦   «         S )NT)Útrust_internetF)rx   rR   r7   rb   r   rc   r
   Úoriginal_linkÚ	is_pinnedr   r"   ©rI   r+   s     r5   Ú_get_linked_req_hashesz*RequirementPreparer._get_linked_req_hashes>  sš   € ð Ô"ð 	3Ø—:’:¨T�:Ñ2Ô2Ð2ð Œ8Œ?ð 	'Ý$Ñ&Ô&Ð&ØŒ8×#Ò#Ñ%Ô%ð 	0Ý-Ñ/Ô/Ð/ð ÔÐ$¨S¬]Ð$Ý‘.”.Ð ð �zŠz¨ˆzÑ/Ô/ÐBµ=±?´?ÐBrA   c                 ó¦   — | j         rt                               d¦  «         d S |                      |¦  «        p|                      |j        ¦  «        S )Nz?Metadata-only fetching is not used as hash checking is required)rx   rm   ÚdebugÚ$_fetch_metadata_using_link_data_attrÚ _fetch_metadata_using_lazy_wheelr7   r•   s     r5   Ú_fetch_metadata_onlyz(RequirementPreparer._fetch_metadata_only^  sb   € ð Ôð 	Ý�LŠLØQñô ð ð �4à×8Ò8Øñ
ô 
ð =à×2Ò2°3´8Ñ<Ô<ð	=rA   c                 ó  — |j                              ¦   «         }|€dS |j        €J ‚t                               d|j        |¦  «         t          || j        |                     ¦   «         ¬¦  «        }t          |j	        d¦  «        5 }| 
                    ¦   «         }ddd¦  «         n# 1 swxY w Y   t          ||j         j        |j        j        ¦  «        }|j        |j        j        k    r!t          |d|j        j        |j        ¦  «        ‚|S )zGFetch metadata from the data-dist-info-metadata attribute, if possible.Nz/Obtaining dependency information for %s from %sra   ÚrbÚName)r7   Úmetadata_linkr+   rm   rn   r\   r   Ú	as_hashesÚopenrD   Úreadr   rk   ÚnameÚraw_namer   )rI   r+   rŸ   Úmetadata_fileÚfÚmetadata_contentsÚmetadata_dists          r5   r™   z8RequirementPreparer._fetch_metadata_using_link_data_attrl  sT  € ð œ×.Ò.Ñ0Ô0ˆØÐ Ø�4ØŒwÐ"Ð"Ð"Ý�ŠØ=ØŒGØñ	
ô 	
ð 	
õ %ØØŒNØ ×*Ò*Ñ,Ô,ð
ñ 
ô 
ˆõ
 �-Ô$ dÑ+Ô+ð 	)¨qØ !§¢¡¤Ðð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ 2ØØŒHÔØŒGŒLñ
ô 
ˆð Ô! S¤W¤\Ò1Ð1Ý&Ø�V˜SœWœ\¨=Ô+Añô ð ð Ðs   ÂB'Â'B+Â.B+r7   c                 óÄ  — | j         sdS |j        s|j        st                               d|¦  «         dS t          |j        ¦  «        }t          |j        ¦  «        }t           	                    d||j
        ¦  «         |j                             dd¦  «        d         }	 t          ||| j        ¦  «        S # t          $ r t                               d|¦  «         Y dS w xY w)z-Fetch metadata using lazy wheel, if possible.Nz=Lazy wheel is not used as %r does not point to a remote wheelz+Obtaining dependency information from %s %sú#é   r   z"%s does not support range requests)r�   rd   re   rm   r˜   r   rk   r   r£   rn   Úversionr;   Úsplitr   r~   r   )rI   r7   Úwheelr£   r;   s        r5   rš   z4RequirementPreparer._fetch_metadata_using_lazy_wheel•  sõ   € ð Ô"ð 	Ø�4ØŒ<ð 	˜tœ}ð 	Ý�LŠLØOØñô ð ð �4å�d”mÑ$Ô$ˆÝ  ¤Ñ,Ô,ˆÝ�ŠØ9ØØŒMñ	
ô 	
ð 	
ð
 Œh�nŠn˜S !Ñ$Ô$ QÔ'ˆð	Ý& t¨S°$´-Ñ@Ô@Ð@øÝ*ð 	ð 	ð 	Ý�LŠLÐ=¸sÑCÔCÐCØ�4�4ð	øøøs   Â B6 Â6%CÃCFÚpartially_downloaded_reqsc                 óX  — t          dd¬¦  «        j        }i }|D ]}|j        sJ ‚|||j        <   Œ|                      |                     ¦   «         |¦  «        }|D ]3\  }\  }}	t
                               d||¦  «         ||         }||_        Œ4|D ]}|                      ||¦  «         ŒdS )z>Download any requirements which were only fetched by metadata.r>   TrT   zDownloading link %s to %sN)	r(   rD   r7   r€   Úkeysrm   r˜   Úlocal_file_pathÚ_prepare_linked_requirement)
rI   r¯   rŠ   rY   Úlinks_to_fully_downloadr+   Úbatch_downloadr7   ÚfilepathÚ_s
             r5   Ú_complete_partial_requirementsz2RequirementPreparer._complete_partial_requirements²  sò   € õ ! hÀÐFÑFÔFÔKˆð
 CEÐØ,ð 	4ð 	4ˆCØ”8ˆOˆOˆOØ03Ð# C¤HÑ-Ð-à×-Ò-Ø#×(Ò(Ñ*Ô*Øñ
ô 
ˆð $2ð 	+ð 	+ÑˆD‘-�8˜QÝ�LŠLÐ4°d¸HÑEÔEÐEØ)¨$Ô/ˆCØ"*ˆCÔÐð -ð 	Cð 	CˆCØ×,Ò,¨S°/ÑBÔBÐBÐBð	Cð 	CrA   c                 óÊ  — |j         sJ ‚|                      |¦  «         t          ¦   «         5  d}| j        �<|j         j        r0|                      |¦  «        }t          |j         | j        |¦  «        }|�|| j        |j         j        <   n,|  	                    |¦  «        }|�d|_
        |cddd¦  «         S |                      ||¦  «        cddd¦  «         S # 1 swxY w Y   dS )z3Prepare a requirement to be obtained from req.link.NT)r7   r‰   r#   rQ   re   r–   rW   r‚   r;   r›   Úneeds_more_preparationr³   )rI   r+   rŠ   r^   rR   r¨   s         r5   Úprepare_linked_requirementz.RequirementPreparer.prepare_linked_requirementÒ  sm  € ð ŒxˆˆˆØ× Ò  Ñ%Ô%Ð%Ý‰\Œ\ð 	Jð 	Jð ˆIØÔ Ð,°´Ô1BÐ,Ø×4Ò4°SÑ9Ô9�Ý/°´¸$Ô:KÈVÑTÔT�	àÐ$à1:�Ô  ¤¤Ñ.Ð.ð !%× 9Ò 9¸#Ñ >Ô >�Ø Ð,Ø15�CÔ.Ø(ð!	Jð 	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð& ×3Ò3°C¸ÑIÔIð'	Jð 	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	Jð 	Js   ­A<CÂ6CÃCÃCÚreqsc                 óŠ  — d„ |D ¦   «         }|D ]b}| j         �Y|j        j        rM|                      |¦  «        }t	          |j        | j         |¦  «        }|�|| j        |j        j        <   d|_        Œcg }|D ]5}|j        r|                     |¦  «         Œ|  	                    ||¦  «         Œ6|  
                    ||¬¦  «         dS )z,Prepare linked requirements more, if needed.c                 ó    — g | ]}|j         ¯	|‘ŒS rO   )rº   )Ú.0r+   s     r5   ú
<listcomp>zHRequirementPreparer.prepare_linked_requirements_more.<locals>.<listcomp>ñ  s    € ÐBÐBÐB˜ sÔ'AÐB�ÐBÐBÐBrA   NF)rŠ   )rQ   r7   re   r–   rW   r‚   r;   rº   Úappendr³   r¸   )rI   r¼   rŠ   r+   rR   r^   r¯   s          r5   Ú prepare_linked_requirements_morez4RequirementPreparer.prepare_linked_requirements_moreí  s  € ð CÐB˜tÐBÑBÔBˆØð 	7ð 	7ˆCàÔ Ð,°´Ô1BÐ,Ø×4Ò4°SÑ9Ô9�Ý/°´¸$Ô:KÈVÑTÔT�	ØÐ(Ø5>�DÔ$ S¤X¤\Ñ2Ø16�CÔ.øð ?AÐ!Øð 	Gð 	GˆCØÔ)ð GØ)×0Ò0°Ñ5Ô5Ð5Ð5à×0Ò0°°oÑFÔFÐFÐFð 	×+Ò+Ø%Ø+ð 	,ñ 	
ô 	
ð 	
ð 	
ð 	
rA   c                 óœ  — |j         sJ ‚|j         }|                      ||¦  «         |                      |¦  «        }|                     ¦   «         rd }n¨|j        | j        vr`	 t          ||j        | j        | j	        | j
        |¦  «        }np# t          $ r)}t          d                     |||¦  «        ¦  «        ‚d }~ww xY w| j        |j                 }|r|                     |¦  «         t          |d ¬¦  «        }|j        €•|j        rJ ‚t%          ||j        ¦  «        |_        t'          |j        j        t*          ¦  «        rS|j        j        j        sB|r@t/          |j        ¦  «        d                              ¦   «         }d|› �|j        j        _        |r|j        |_        t7          || j        | j        | j        | j        ¦  «        }	|	S )NzDCould not install requirement {} because of HTTP error {} for URL {})rE   r   zsha256=) r7   r�   r–   rc   r;   r‚   rg   r�   r   r9   rQ   r   r   r�   rX   rC   Údownload_infoÚeditabler    Ú
isinstancern   r   Úhashr%   rD   Ú	hexdigestr²   r6   r,   r-   r.   r/   )
rI   r+   rŠ   r7   rR   Ú
local_fileÚexcr^   rÇ   Údists
             r5   r³   z/RequirementPreparer._prepare_linked_requirement  s  € ð ŒxˆˆˆØŒxˆà×%Ò% c¨?Ñ;Ô;Ð;Ø×,Ò,¨SÑ1Ô1ˆà×ÒÑ!Ô!ð 	<ØˆJˆJØŒX˜TÔ-Ð-Ð-ðÝ'ØØ”NØ”NØ”NØÔ%Øñô �
�
øõ *ð ð ð Ý'ð*ß*0ª&°°c¸4Ñ*@Ô*@ñô ð øøøøðøøøð Ô(¨¬Ô2ˆIØð 5Ø×)Ò)¨)Ñ4Ô4Ð4Ý˜i°dÐ;Ñ;Ô;ˆJð ÔÐ$ð ”|Ð#Ð#Ð#Ý 4°T¸3¼>Ñ JÔ JˆCÔõ
 ˜3Ô,Ô1µ;Ñ?Ô?ð?àÔ)Ô.Ô3ð?ð ð?õ
 ! ¤Ñ1Ô1°!Ô4×>Ò>Ñ@Ô@�Ø.>¸Ð.>Ð.>�Ô!Ô&Ô+ð ð 	2Ø",¤/ˆCÔå)ØØÔØŒKØÔ ØÔ!ñ
ô 
ˆð ˆs   Á"(B Â
B>Â$B9Â9B>c                 óF  — | j         €J ‚|j        €J ‚|j        }|j        s|                     ¦   «         r#|j        r|                     | j         ¦  «         d S |                     ¦   «         rt                               d|¦  «         d S |j        €d S t          j
                             | j         |j        ¦  «        }t          j
                             |¦  «        sFt          j        |j        |¦  «         t!          |¦  «        }t                               d|¦  «         d S d S )NzENot copying link to destination directory since it is a directory: %szSaved %s)rQ   r7   rb   rc   rÅ   Úarchiverm   r˜   r²   ri   rD   rj   rk   rl   ÚshutilÚcopyr$   rn   )rI   r+   r7   Údownload_locationrq   s        r5   Úsave_linked_requirementz+RequirementPreparer.save_linked_requirementJ  s'  € ØÔ Ð,Ð,Ð,ØŒxÐ#Ð#Ð#ØŒxˆØŒ;ð 	˜4×/Ò/Ñ1Ô1ð 	°c´lð 	à�KŠK˜Ô)Ñ*Ô*Ð*ØˆFà×ÒÑ!Ô!ð 	Ý�LŠLð.àñô ð ð
 ˆFØÔÐ&àˆFåœGŸLšL¨Ô):¸D¼MÑJÔJÐÝŒw�~Š~Ð/Ñ0Ô0ð 	3ÝŒK˜Ô+Ð->Ñ?Ô?Ð?Ý(Ð):Ñ;Ô;ˆMÝ�KŠK˜
 MÑ2Ô2Ð2Ð2Ð2ð	3ð 	3rA   c                 ó  — |j         s
J d¦   «         ‚t                               d|¦  «         t          ¦   «         5  | j        r"t          d                     |¦  «        ¦  «        ‚|                     | j        ¦  «         | 	                    ¦   «          |j
        sJ ‚t          |j        ¦  «        |_        t          || j        | j        | j        | j        ¦  «        }|                     | j        ¦  «         ddd¦  «         n# 1 swxY w Y   |S )z Prepare an editable requirement.z-cannot prepare a non-editable req as editablezObtaining %szoThe editable requirement {} cannot be installed when requiring hashes, because there is no single file to hash.N)rÅ   rm   rn   r#   rx   r   r�   rŽ   ru   Úupdate_editabler�   r   Úunpacked_source_directoryrÄ   r6   r,   r-   r.   r/   Úcheck_if_existsry   )rI   r+   rË   s      r5   Úprepare_editable_requirementz0RequirementPreparer.prepare_editable_requirementd  sO  € ð
 Œ|ÐLÐLÐLÑLÔLÐLå�Š�N CÑ(Ô(Ð(å‰\Œ\ð 	4ð 	4ØÔ"ð Ý'ðç"šF 3™KœKñô ð ð
 ×%Ò% d¤lÑ3Ô3Ð3Ø×ÒÑ!Ô!Ð!Ø”>Ð!Ð!Ð!Ý 7¸Ô8UÑ VÔ VˆCÔå-ØØÔ"Ø”ØÔ$ØÔ%ñô ˆDð ×Ò Ô 2Ñ3Ô3Ð3ð)	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð, ˆs   »B;DÄDÄ	DÚskip_reasonc                 óŽ  — |j         s
J d¦   «         ‚|€"J d                     |j         ¦  «        ¦   «         ‚t                               d|||j         j        ¦  «         t          ¦   «         5  | j        rt                               d¦  «         t          |¦  «         	                    ¦   «         cddd¦  «         S # 1 swxY w Y   dS )z)Prepare an already-installed requirement.z(req should have been satisfied but isn'tNzAdid not get skip reason skipped but req.satisfied_by is set to {}zRequirement %s: %s (%s)z§Since it is already installed, we are trusting this package without checking its hash. To ensure a completely repeatable environment, install into an empty virtualenv.)
Úsatisfied_byr�   rm   rn   r¬   r#   rx   r˜   r	   r   )rI   r+   r×   s      r5   Úprepare_installed_requirementz1RequirementPreparer.prepare_installed_requirement…  s/  € ð ÔÐKÐKÐ!KÑKÔKÐKØÐ&Ð&ðß!š6 #Ô"2Ñ3Ô3ñ 'Ô&Ð&õ 	�ŠØ% {°C¸Ô9IÔ9Qñ	
ô 	
ð 	
õ ‰\Œ\ð 	Jð 	JØÔ"ð Ý—’ð(ñô ð õ )¨Ñ-Ô-×GÒGÑIÔIð	Jð 	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	Jð 	Js   Á+AB:Â:B>ÃB>)F)rK   rL   rM   Ú__doc__rN   r   Úboolr   r   r   ÚintrJ   r   r‰   r�   r!   r–   r   r›   r™   r   rš   r   r¸   r»   rÂ   r³   rÑ   rÖ   rÚ   Ú__classcell__)r„   s   @r5   rs   rs   Ï   sQ  ø€ € € € € Ø Ð ð45àð45ð ˜s”mð45ð ð	45ð
 ð45ð ð45ð $ð45ð ð45ð ð45ð ð45ð ð45ð ð45ð ð45ð ð45ð 
ð45ð 45ð 45ð 45ð 45ð 45ðlBÐ'9ð B¸dð Bð Bð Bð Bð"#Ø%ð#Ø8<ð#à	ð#ð #ð #ð #ðJCÐ*<ð CÀð Cð Cð Cð Cð@=àð=ð 
Ð"Ô	#ð=ð =ð =ð =ð'àð'ð 
Ð"Ô	#ð'ð 'ð 'ð 'ðRàðð 
Ð"Ô	#ðð ð ð ð@ !&ðCð Cà#+Ð,>Ô#?ðCð ðCð 
ð	Cð Cð Cð CðB @EðJð JØ%ðJØ8<ðJà	ðJð Jð Jð Jð8 KPð
ð 
ØÐ/Ô0ð
ØCGð
à	ð
ð 
ð 
ð 
ð<=Ø%ð=Ø8<ð=à	ð=ð =ð =ð =ð~3Ð+=ð 3À$ð 3ð 3ð 3ð 3ð4àðð 
ðð ð ð ðBJàðJð ðJð 
ð	Jð Jð Jð Jð Jð Jð Jð JrA   rs   )NN)QrÛ   ÚloggingrG   ri   rÎ   Útypingr   r   r   r   Úpip._vendor.packaging.utilsr   Úpip._internal.distributionsr   Ú%pip._internal.distributions.installedr	   Úpip._internal.exceptionsr
   r   r   r   r   r   r   r   Ú"pip._internal.index.package_finderr   Úpip._internal.metadatar   r   Úpip._internal.models.direct_urlr   Úpip._internal.models.linkr   Úpip._internal.models.wheelr   Úpip._internal.network.downloadr   r   Ú pip._internal.network.lazy_wheelr   r   Úpip._internal.network.sessionr   Ú,pip._internal.operations.build.build_trackerr   Úpip._internal.req.req_installr   Ú&pip._internal.utils.direct_url_helpersr   r    Úpip._internal.utils.hashesr!   r"   Úpip._internal.utils.loggingr#   Úpip._internal.utils.miscr$   r%   r&   r'   Úpip._internal.utils.temp_dirr(   Úpip._internal.utils.unpackingr)   Úpip._internal.vcsr*   Ú	getLoggerrK   rm   rÜ   r6   rN   rÝ   r@   rC   r\   r_   rg   rW   rs   rO   rA   r5   ú<module>r÷      së  ððð ð €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à 9Ð 9Ð 9Ð 9Ð 9Ð 9à QÐ QÐ QÐ QÐ QÐ QØ GÐ GÐ GÐ GÐ GÐ Gð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð =Ð <Ð <Ð <Ð <Ð <Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø *Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ø EÐ EÐ EÐ EÐ EÐ EØ <Ð <Ð <Ð <Ð <Ð <ðð ð ð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø !Ð !Ð !Ð !Ð !Ð !à	ˆÔ	˜8Ñ	$Ô	$€ð5Ø	ð5àð5ð ð5ð ð	5ð
 ð5ð ð5ð 5ð 5ð 5ð N˜$ð N¨#ð N¸#ð NÀ$ð Nð Nð Nð Nð-ð -ð -ð -ð -ñ -ô -ð -ð #'Ø#ð	)ð )Ø
ð)àð)ð ˜3”-ð)ð �VÔð	)ð
 
ð)ð )ð )ð )ð2 PTð!ð !Ø
ð!Ø& sœmð!Ø<DÀVÔ<Lð!à	ð!ð !ð !ð !ð: #'Ø#ð(ð (Ø
ð(àð(ð ð(ð ð	(ð
 ˜3”-ð(ð �VÔð(ð ˆd„^ð(ð (ð (ð (ðVØ
ðØ!ðØ+3°FÔ+;ðàˆc„]ðð ð ð ð4LJð LJð LJð LJð LJñ LJô LJð LJð LJð LJrA   