Ë
    ��hËn  ã                   óÈ  — d Z ddlZddlZddlZddlmZ ddlm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 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l0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF  e3eG«      ZHde1de/dedeId eId!efd"„ZJd#e#d$eKd%eLd!dfd&„ZMe G d'„ d(«      «       ZN	 	 d3d#e#d)e(d*eeK   d+ee8   d!eNf
d,„ZO	 d3d#e#d*eeK   d+ee8   d!eNfd-„ZP	 	 d3d#e#d$eKd)e(d%eLd*eeK   d+ee8   d!eeN   fd.„ZQ	 d4d#e#d*eKd+ee8   d/eId!eeK   f
d0„ZR G d1„ d2«      ZSy)5z(Prepares a distribution for installationé    N)Ú	dataclass)ÚPath)ÚDictÚIterableÚListÚOptional)Úcanonicalize_name)Ú)make_distribution_for_install_requirement)ÚInstalledDistribution)ÚDirectoryUrlHashUnsupportedÚHashMismatchÚHashUnpinnedÚInstallationErrorÚMetadataInconsistentÚNetworkConnectionErrorÚVcsHashUnsupported)ÚPackageFinder)ÚBaseDistributionÚget_metadata_distribution)ÚArchiveInfo)ÚLink)ÚWheel)ÚBatchDownloaderÚ
Downloader)ÚHTTPRangeRequestUnsupportedÚdist_from_wheel_url)Ú
PipSession)ÚBuildTracker)ÚInstallRequirement)Ú	getLogger)Údirect_url_for_editableÚdirect_url_from_link)ÚHashesÚMissingHashes)Ú
indent_log)Údisplay_pathÚ	hash_fileÚhide_urlÚredact_auth_from_requirement)ÚTempDirectory)Úunpack_file)ÚvcsÚreqÚbuild_trackerÚfinderÚbuild_isolationÚcheck_build_depsÚreturnc                 ó  — t        | «      }|j                  }|�>|j                  | |«      5  |j                  |||«       ddd«       |j	                  «       S |j	                  «       S # 1 sw Y   |j	                  «       S xY w)z(Prepare a distribution for installation.N)r
   Úbuild_tracker_idÚtrackÚprepare_distribution_metadatar   )r-   r.   r/   r0   r1   Úabstract_distÚ
tracker_ids          ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.pyÚ_get_prepared_distributionr:   ;   s…   € ô >¸cÓB€MØ×/Ñ/€JØÐØ× Ñ   jÓ1ñ 	Ø×7Ñ7Ø˜Ð)9ô÷	ð ×2Ñ2Ó4Ð4ˆ=×2Ñ2Ó4Ð4÷		ð ×2Ñ2Ó4Ð4ús   ¬A(Á(B ÚlinkÚlocationÚ	verbosityc                 ó˜   — t        j                  | j                  «      }|€J ‚|j                  |t	        | j
                  «      |¬«       y )N)Úurlr=   )r,   Úget_backend_for_schemeÚschemeÚunpackr(   r?   )r;   r<   r=   Úvcs_backends       r9   Úunpack_vcs_linkrD   M   s@   € Ü×,Ñ,¨T¯[©[Ó9€KØÐ"Ð"Ð"Ø×Ñ�x¤X¨d¯h©hÓ%7À9ÐÕMó    c                   ó4   — e Zd ZU eed<   dZee   ed<   dd„Zy)ÚFileÚpathNÚcontent_typec                 óŒ   — | j                   €)	 t        j                  | j                  «      d   | _         y y # t        $ r Y y w xY w)Nr   )rI   Ú	mimetypesÚ
guess_typerH   ÚOSError)Úselfs    r9   Ú__post_init__zFile.__post_init__X   sH   € Ø×ÑÐ$ðÜ$-×$8Ñ$8¸¿¹Ó$CÀAÑ$F�Õ!ð	 %øô
 ò Ùðús   Ž'7 ·	AÁA)r2   N)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__rI   r   rO   © rE   r9   rG   rG   S   s   … à
ƒIØ"&€L�(˜3‘-Ó&ôrE   rG   ÚdownloadÚdownload_dirÚhashesc                 ó¶   — t        dd¬«      }d }|rt        | ||«      }|r|}d }n) || |j                  «      \  }}|r|j                  |«       t	        ||«      S )NrB   T©ÚkindÚglobally_managed)r*   Ú_check_download_dirrH   Úcheck_against_pathrG   )r;   rV   rW   rX   Útemp_dirÚalready_downloaded_pathÚ	from_pathrI   s           r9   Úget_http_urlrb   b   sj   € ô  (¸TÔB€Hà"ÐÙÜ"5°d¸LÈ&Ó"QÐáØ+ˆ	Ø‰ñ #+¨4°·±Ó"?Ñˆ	�<ÙØ×%Ñ% iÔ0ä�	˜<Ó(Ð(rE   c                 ó„   — d}|rt        | ||«      }|r|}n| j                  }|r|j                  |«       t        |d«      S )z'Get file and optionally check its hash.N)r]   Ú	file_pathr^   rG   )r;   rW   rX   r`   ra   s        r9   Úget_file_urlre   z   sM   € ð
 #ÐÙÜ"5°d¸LÈ&Ó"QÐáØ+‰	à—N‘Nˆ	ñ Ø×!Ñ! )Ô,Ü�	˜4Ó Ð rE   c                 ó  — | j                   rt        | ||¬«       y| j                  «       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.
    )r=   N©rX   )
Úis_vcsrD   Úis_existing_dirÚis_filere   rb   Úis_wheelr+   rH   rI   )r;   r<   rV   r=   rW   rX   Úfiles          r9   Ú
unpack_urlrm   ’   s   € ð  ‡{‚{Ü˜˜h°)Õ<Øà×#Ñ#Ô%Ð%Ð%ð ‡|‚|Ü˜D ,°vÔ>‰ô ØØØØô	
ˆð �=Š=Ü�D—I‘I˜x¨×):Ñ):Ô;à€KrE   Úwarn_on_hash_mismatchc                 ój  — t         j                  j                  || j                  «      }t         j                  j	                  |«      syt
        j                  d|«       |r	 |j                  |«       |S |S # t        $ r0 |rt
        j                  d|«       t        j                  |«       Y yw xY w)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.)ÚosrH   ÚjoinÚfilenameÚexistsÚloggerÚinfor^   r   ÚwarningÚunlink)r;   rW   rX   rn   Údownload_paths        r9   r]   r]   ½   sš   € ô —G‘G—L‘L ¨t¯}©}Ó=€Mä�7‰7�>‰>˜-Ô(Øô ‡K�KÐ0°-Ô@Ùð		Ø×%Ñ% mÔ4ð Ðˆ=Ðøô ò 	Ù$Ü—‘ØQØ!ôô �I‰I�mÔ$Ùð	ús   Á$A9 Á96B2Â1B2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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_dirrW   Úsrc_dirr0   r1   r.   ÚsessionÚprogress_barr/   Úrequire_hashesÚuse_user_siteÚ
lazy_wheelr=   Úlegacy_resolverÚresume_retriesr2   Nc                 ó<  •— t         ‰| �  «        || _        || _        || _        || _        t        |||«      | _        t        |||«      | _	        |	| _
        || _        || _        || _        |
| _        || _        || _        || _        || _        i | _        d| _        y )N)Ú r…   )ÚsuperÚ__init__r|   r{   r.   Ú_sessionr   Ú	_downloadr   Ú_batch_downloadr/   rW   r0   r1   r   r€   Úuse_lazy_wheelr=   r‚   Ú_downloadedÚ_previous_requirement_header)rN   r{   rW   r|   r0   r1   r.   r}   r~   r/   r   r€   r�   r=   r‚   rƒ   Ú	__class__s                   €r9   r‡   zRequirementPreparer.__init__Þ   s¸   ø€ ô$ 	‰ÑÔàˆŒØ"ˆŒØ*ˆÔØˆŒÜ# G¨\¸>ÓJˆŒÜ.¨w¸ÀnÓUˆÔØˆŒð )ˆÔð  /ˆÔð !1ˆÔð -ˆÔð +ˆÔð )ˆÔð #ˆŒð  /ˆÔð ,.ˆÔð -5ˆÕ)rE   r-   c                 óÎ  — |j                   j                  r7|j                  s+d}t        t	        |j                   j
                  «      «      }n.d}|j                  rt        |j                  «      n
t        |«      }|j                  rX|j                  rLt        |j                  t        «      r|j                  }n|j                  j                  «       }|r	|d|› d�z  }||f| j                  k7  r||f| _        t        j                  ||«       |j                  r>t        «       5  t        j                  d|j                   j                  «       ddd«       yy# 1 sw Y   yxY w)z3Provide context for the requirement being prepared.zProcessing %szCollecting %sz (from ú)zUsing cached %sN)r;   rj   Úis_wheel_from_cacherS   r&   rd   r-   r)   Ú
comes_fromÚ
isinstancera   r�   rt   ru   r%   rr   )rN   r-   ÚmessageÚinformationr’   s        r9   Ú_log_preparing_linkz'RequirementPreparer._log_preparing_link  s  € à�8‰8×Ò C×$;Ò$;Ø%ˆGÜœl¨3¯8©8×+=Ñ+=Ó>Ó?‰Kà%ˆGØCFÇ7Â7Ô6°s·w±wÔ?ÔPSÐTWÓPXˆKð �7Š7�s—~’~Ü˜#Ÿ.™.¬#Ô.Ø,/¯N©N‘
à Ÿ^™^×5Ñ5Ó7�
ÙØ ¨¨°AÐ6Ñ6�à�[Ð! T×%FÑ%FÒFØ18¸+Ð0FˆDÔ-Ü�K‰K˜ Ô-à×"Ò"Ü“ñ BÜ—‘Ð-¨s¯x©x×/@Ñ/@ÔA÷Bð Bð #÷Bð Bús   Ä&+EÅE$Úparallel_buildsc                 ó  — |j                   j                  ry|j                  �J ‚|j                   j                  «       r|j                   j                  |_        y|j                  | j                  d|¬«       |j                  «        y)z1Ensure source_dir of a linked InstallRequirement.NT)Ú
autodeleter—   )r;   rk   Ú
source_dirri   rd   Úensure_has_source_dirr{   Úensure_pristine_source_checkout)rN   r-   r—   s      r9   Ú_ensure_link_req_src_dirz,RequirementPreparer._ensure_link_req_src_dir4  sz   € ð
 �8‰8×Òð Ø�~‰~Ð%Ð%Ð%Ø�8‰8×#Ñ#Ô%à ŸX™X×/Ñ/ˆCŒNØð 	×!Ñ!Ø�N‰NØØ+ð 	"ô 	
ð
 	×+Ñ+Õ-rE   c                 óF  — | j                   s|j                  d¬«      S |j                  j                  r
t	        «       ‚|j                  j                  «       r
t        «       ‚|j                  s|j                  s
t        «       ‚|j                  d¬«      xs
 t        «       S )NT)Útrust_internetF)r   rX   r;   rh   r   ri   r   Ú	is_directÚ	is_pinnedr   r$   ©rN   r-   s     r9   Ú_get_linked_req_hashesz*RequirementPreparer._get_linked_req_hashesK  s~   € ð ×"Ò"Ø—:‘:¨T�:Ó2Ð2ð �8‰8�?Š?Ü$Ó&Ð&Ø�8‰8×#Ñ#Ô%Ü-Ó/Ð/ð �}Š} S§]¢]Ü“.Ð ð �z‰z¨ˆzÓ/ÒB´=³?ÐBrE   c                 óæ   — | j                   rt        j                  d«       y | j                  rt        j                  d«       y | j	                  |«      xs | j                  |j                  «      S )Nz9Metadata-only fetching is not used in the legacy resolverz?Metadata-only fetching is not used as hash checking is required)r‚   rt   Údebugr   Ú$_fetch_metadata_using_link_data_attrÚ _fetch_metadata_using_lazy_wheelr;   r¢   s     r9   Ú_fetch_metadata_onlyz(RequirementPreparer._fetch_metadata_onlyk  sk   € ð ×ÒÜ�L‰LØKôð Ø×ÒÜ�L‰LØQôð à×8Ñ8Øó
ò =à×2Ñ2°3·8±8Ó<ð	=rE   c                 óŒ  — |j                   j                  «       }|€y|j                  €J ‚t        j	                  d|j                  |«       t        || j                  |j                  «       ¬«      }t        |j                  d«      5 }|j                  «       }ddd«       t        |j                   j                  |j                  j                  «      }t        |j                  «      t        |j                  j                  «      k7  r,t!        |d|j                  j                  |j                  «      ‚|S # 1 sw Y   Œ¡xY w)zGFetch metadata from the data-dist-info-metadata attribute, if possible.Nz/Obtaining dependency information for %s from %srg   ÚrbÚName)r;   Úmetadata_linkr-   rt   Úverboserb   r‰   Ú	as_hashesÚopenrH   Úreadr   rr   Únamer	   Úraw_namer   )rN   r-   r¬   Úmetadata_fileÚfÚmetadata_contentsÚmetadata_dists          r9   r¦   z8RequirementPreparer._fetch_metadata_using_link_data_attr~  s  € ð Ÿ™×.Ñ.Ó0ˆØÐ ØØ�w‰wÐ"Ð"Ð"Ü�‰Ø=Ø�G‰GØô	
ô %ØØ�N‰NØ ×*Ñ*Ó,ô
ˆô
 �-×$Ñ$ dÓ+ð 	)¨qØ !§¡£Ð÷	)ô 2ØØ�H‰H×ÑØ�G‰G�L‰Ló
ˆô ˜]×3Ñ3Ó4Ô8IÈ#Ï'É'Ï,É,Ó8WÒWÜ&Ø�V˜SŸW™WŸ\™\¨=×+AÑ+Aóð ð Ð÷%	)ð 	)ús   Â	D:Ä:Er;   c                 óÈ  — | j                   sy|j                  s|j                  st        j	                  d|«       yt        |j                  «      }t        |j                  «      }t        j                  d||j                  «       |j                  j                  dd«      d   }	 t        ||| j                  «      S # t        $ r t        j	                  d|«       Y y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‹   rj   rk   rt   r¥   r   rr   r	   r±   ru   Úversionr?   Úsplitr   rˆ   r   )rN   r;   Úwheelr±   r?   s        r9   r§   z4RequirementPreparer._fetch_metadata_using_lazy_wheel§  s½   € ð ×"Ò"ØØ�<Š<˜tŸ}š}Ü�L‰LØOØôð ä�d—m‘mÓ$ˆÜ  §¡Ó,ˆÜ�‰Ø9ØØ�M‰Mô	
ð
 �h‰h�n‰n˜S !Ó$ QÑ'ˆð	Ü& t¨S°$·-±-Ó@Ð@øÜ*ò 	Ü�L‰LÐ=¸sÔCÙð	ús   Â(B? Â?C!Ã C!Úpartially_downloaded_reqsc                 óä  — t        dd¬«      j                  }i }|D ]  }|j                  sJ ‚|||j                  <   Œ! | j                  |j	                  «       |«      }|D ]u  \  }\  }}	t
        j                  d||«       ||   }||_        || j                  |j                  j                  <   |j                  rŒ\|j                  t        |«      «       Œw |D ]  }| j                  ||«       Œ y)z>Download any requirements which were only fetched by metadata.rB   TrZ   zDownloading link %s to %sN)r*   rH   r;   rŠ   Úkeysrt   r¥   Úlocal_file_pathrŒ   r?   rk   Úneeds_unpacked_archiver   Ú_prepare_linked_requirement)
rN   r½   r—   r_   Úlinks_to_fully_downloadr-   Úbatch_downloadr;   ÚfilepathÚ_s
             r9   Ú_complete_partial_requirementsz2RequirementPreparer._complete_partial_requirementsÄ  s  € ô ! hÀÔF×KÑKˆð
 CEÐØ,ò 	4ˆCØ—8’8ˆO�8Ø03Ð# C§H¡HÒ-ð	4ð ×-Ñ-Ø#×(Ñ(Ó*Øó
ˆð $2ò 	;ÑˆD‘-�8˜QÜ�L‰LÐ4°d¸HÔEØ)¨$Ñ/ˆCð #+ˆCÔð .6ˆD×Ñ˜SŸX™XŸ\™\Ñ*ð —<“<Ø×*Ñ*¬4°«>Õ:ð	;ð& -ò 	CˆCØ×,Ñ,¨S°/ÕBñ	CrE   c                 ó   — |j                   sJ ‚| j                  |«       t        «       5  d}| j                  �U|j                   j                  r?| j                  |«      }t        |j                   | j                  ||j                   ¬«      }|�$|| j                  |j                   j                  <   n%| j                  |«      }|�d|_        |cddd«       S | j                  ||«      cddd«       S # 1 sw Y   yxY w)z3Prepare a requirement to be obtained from req.link.N)rn   T)r;   r–   r%   rW   rk   r£   r]   r‘   rŒ   r?   r¨   Úneeds_more_preparationrÂ   )rN   r-   r—   rd   rX   r¶   s         r9   Úprepare_linked_requirementz.RequirementPreparer.prepare_linked_requirementð  sö   € ð �xŠxˆˆxØ× Ñ  Ô%Ü‹\ñ 	Jð ˆIØ× Ñ Ð,°·±×1BÒ1BØ×4Ñ4°SÓ9�Ü/Ø—H‘HØ×%Ñ%Øð /2×.EÑ.EÐ*Eô�	ð Ð$à1:�× Ñ  §¡§¡Ò.ð !%× 9Ñ 9¸#Ó >�Ø Ð,Ø15�CÔ.Ø(÷7	Jñ 	Jð< ×3Ñ3°C¸ÓI÷=	J÷ 	Jò 	Jús   ªB%C4ÃC4Ã4C=Úreqsc                 óò  — |D �cg c]  }|j                   sŒ|‘Œ }}|D ]…  }| j                  €Œ|j                  j                  sŒ'| j	                  |«      }t        |j                  | j                  |«      }|€Œ\|| j                  |j                  j                  <   d|_         Œ‡ g }|D ]2  }|j                   r|j                  |«       Œ!| j                  ||«       Œ4 | j                  ||¬«       yc c}w )z,Prepare linked requirements more, if needed.NF)r—   )rÉ   rW   r;   rk   r£   r]   rŒ   r?   ÚappendrÂ   rÇ   )rN   rË   r—   r-   rX   rd   r½   s          r9   Ú prepare_linked_requirements_morez4RequirementPreparer.prepare_linked_requirements_more  sö   € ð  $ÖB˜ s×'AÓ'A’ÐBˆÐBØò 	7ˆCà× Ñ Ñ,°·±×1BÓ1BØ×4Ñ4°SÓ9�Ü/°·±¸$×:KÑ:KÈVÓT�	ØÑ(Ø5>�D×$Ñ$ S§X¡X§\¡\Ñ2Ø16�CÕ.ð	7ð ?AÐ!Øò 	GˆCØ×)Ò)Ø)×0Ñ0°Õ5à×0Ñ0°°oÕFð		Gð 	×+Ñ+Ø%Ø+ð 	,õ 	
ùò+ Cs
   …C4—C4c           	      óØ  — |j                   sJ ‚|j                   }| j                  |«      }|rÞ|j                  rÒ|j                  €J ‚|j                  sJ ‚|j
                  sJ ‚t        |j                  j                  t        «      rR|j                  j                  j                  r2|j                  |j                  j                  j                  «      rd }n2t        j                  d«       |j                  |_         |j                   }| j                  ||«       |j                  «       rd }n‹|j                   | j"                  vr:	 t%        ||j&                  | j(                  | j*                  | j,                  |«      }n9| j"                  |j                      }|r|j3                  |«       t5        |d ¬«      }|j                  €³|j6                  rJ ‚t9        ||j&                  «      |_        t        |j                  j                  t        «      rf|j                  j                  j                  sF|rDt;        |j<                  «      d   j?                  «       }d|› �|j                  j                  _         |r|j<                  |_!        tE        || jF                  | jH                  | jJ                  | jL                  «      }	|	S # t.        $ r}t1        d|› d|› d|› �«      ‚d }~ww xY w)NzyThe hashes of the source archive found in cache entry don't match, ignoring cached built wheel and re-downloading source.zCould not install requirement z because of HTTP error z	 for URL )rI   r   zsha256=)'r;   r£   r‘   Údownload_infork   rj   r“   ru   r   rX   Ú
has_one_ofrt   rv   Úcached_wheel_source_linkr�   ri   r?   rŒ   rm   rš   r‰   r=   rW   r   r   r^   rG   Úeditabler"   r'   rH   Ú	hexdigestÚhashrÀ   r:   r.   r/   r0   r1   )
rN   r-   r—   r;   rX   Ú
local_fileÚexcrd   rÕ   Údists
             r9   rÂ   z/RequirementPreparer._prepare_linked_requirement4  s�  € ð �xŠxˆˆxØ�x‰xˆà×,Ñ,¨SÓ1ˆá�c×-Ò-Ø×$Ñ$Ð0Ð0Ð0Ø—=’=Ð �=Ø—<’<Ð�<ô ˜3×,Ñ,×1Ñ1´;Ô?Ø×%Ñ%×*Ñ*×1Ò1Ø×%Ñ% c×&7Ñ&7×&<Ñ&<×&CÑ&CÔDð ‘ä—‘ð1ôð
 ×7Ñ7�”Ø—x‘x�à×%Ñ% c¨?Ô;à×ÑÔ!Ø‰JØ�X‰X˜T×-Ñ-Ñ-ðÜ'ØØ—N‘NØ—N‘NØ—N‘NØ×%Ñ%Øó‘
ð ×(Ñ(¨¯©Ñ2ˆIÙØ×)Ñ)¨)Ô4Ü˜i°dÔ;ˆJð ×ÑÐ$ð —|’|Ð#Ð#Ü 4°T¸3¿>¹>Ó JˆCÔô ˜3×,Ñ,×1Ñ1´;Ô?Ø×)Ñ)×.Ñ.×5Ò5Ùä  §¡Ó1°!Ñ4×>Ñ>Ó@�ð 18¸°vÐ.>�×!Ñ!×&Ñ&Ô+ñ Ø",§/¡/ˆCÔä)ØØ×ÑØ�K‰KØ× Ñ Ø×!Ñ!ó
ˆð ˆøôW *ò Ü'Ø4°S°Eð :Ø ˜E ¨4¨&ð2óð ûðús   Å
8K Ë	K)ËK$Ë$K)c                 ón  — | j                   €J ‚|j                  €J ‚|j                  }|j                  s|j                  «       r(|j                  r|j                  | j                   «       y |j                  «       rt        j                  d|«       y |j                  €y t        j                  j                  | j                   |j                  «      }t        j                  j                  |«      sBt        j                  |j                  |«       t!        |«      }t        j#                  d|«       y y )NzENot copying link to destination directory since it is a directory: %szSaved %s)rW   r;   rh   ri   rÓ   Úarchivert   r¥   rÀ   rp   rH   rq   rr   rs   ÚshutilÚcopyr&   ru   )rN   r-   r;   Údownload_locationrx   s        r9   Úsave_linked_requirementz+RequirementPreparer.save_linked_requirement�  sñ   € Ø× Ñ Ð,Ð,Ð,Ø�x‰xÐ#Ð#Ð#Ø�x‰xˆØ�;Š;˜4×/Ñ/Ô1°c·l²là�K‰K˜×)Ñ)Ô*Øà×ÑÔ!Ü�L‰Lð.àôð
 Ø×ÑÐ&àäŸG™GŸL™L¨×):Ñ):¸D¿M¹MÓJÐÜ�w‰w�~‰~Ð/Ô0Ü�K‰K˜×+Ñ+Ð->Ô?Ü(Ð):Ó;ˆMÜ�K‰K˜
 MÕ2ð 1rE   c                 ó  — |j                   sJ d«       ‚t        j                  d|«       t        «       5  | j                  rt        d|› d�«      ‚|j                  | j                  «       |j                  «        |j                  sJ ‚t        |j                  «      |_        t        || j                  | j                  | j                   | j"                  «      }|j%                  | j&                  «       ddd«       |S # 1 sw Y   S xY w)z Prepare an editable requirement.z-cannot prepare a non-editable req as editablezObtaining %szThe editable requirement zT cannot be installed when requiring hashes, because there is no single file to hash.N)rÓ   rt   ru   r%   r   r   r›   r|   Úupdate_editablerš   r!   Úunpacked_source_directoryrÐ   r:   r.   r/   r0   r1   Úcheck_if_existsr€   )rN   r-   rØ   s      r9   Úprepare_editable_requirementz0RequirementPreparer.prepare_editable_requirementª  sò   € ð
 �|Š|ÐLÐLÓLˆ|ä�‰�N CÔ(ä‹\ñ 	4Ø×"Ò"Ü'Ø/°¨uð 5ð óð ð
 ×%Ñ% d§l¡lÔ3Ø×ÑÔ!Ø—>’>Ð!�>Ü 7¸×8UÑ8UÓ VˆCÔä-ØØ×"Ñ"Ø—‘Ø×$Ñ$Ø×%Ñ%óˆDð ×Ñ × 2Ñ 2Ô3÷)	4ð, ˆ÷-	4ð, ˆús   ´CC?Ã?D	Úskip_reasonc                 ó`  — |j                   sJ d«       ‚|€J d|j                   › �«       ‚t        j                  d|||j                   j                  «       t	        «       5  | j
                  rt        j                  d«       t        |«      j                  «       cddd«       S # 1 sw Y   yxY w)z)Prepare an already-installed requirement.z(req should have been satisfied but isn'tNz?did 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_byrt   ru   rº   r%   r   r¥   r   r   )rN   r-   rä   s      r9   Úprepare_installed_requirementz1RequirementPreparer.prepare_installed_requirementË  s²   € ð ×ÒÐKÐ!KÓKÐØÐ&ð 	
ðØ×)Ñ)Ð*ð,ó	
Ð&ô 	�‰Ø% {°C¸×9IÑ9I×9QÑ9Qô	
ô ‹\ñ 	JØ×"Ò"Ü—‘ð(ôô )¨Ó-×GÑGÓI÷	J÷ 	Jò 	Jús   Á :B$Â$B-)F)rP   rQ   rR   Ú__doc__rS   r   Úboolr   r   r   Úintr‡   r   r–   r�   r#   r£   r   r¨   r¦   r   r§   r   rÇ   rÊ   rÎ   rÂ   rÞ   rã   rç   Ú__classcell__)rŽ   s   @r9   rz   rz   Û   sJ  ø„ Ù ð95àð95ð ˜s‘mð95ð ð	95ð
 ð95ð ð95ð $ð95ð ð95ð ð95ð ð95ð ð95ð ð95ð ð95ð ð95ð ð95ð  ð!95ð" 
õ#95ðvBÐ'9ð B¸dó Bð6.Ø%ð.Ø8<ð.à	ó.ð.CÐ*<ð CÀó Cð@=àð=ð 
Ð"Ñ	#ó=ð&'àð'ð 
Ð"Ñ	#ó'ðRàðð 
Ð"Ñ	#óð@ !&ñ*Cà#+Ð,>Ñ#?ð*Cð ð*Cð 
ó	*CðZ @Eñ$JØ%ð$JØ8<ð$Jà	ó$JðN KPñ
ØÐ/Ñ0ð
ØCGð
à	ó
ð<ZØ%ðZØ8<ðZà	óZðx3Ð+=ð 3À$ó 3ð4àðð 
óðBJàðJð ðJð 
÷	JrE   rz   )NN)T)Trè   rK   rp   rÛ   Údataclassesr   Úpathlibr   Útypingr   r   r   r   Úpip._vendor.packaging.utilsr	   Úpip._internal.distributionsr
   Ú%pip._internal.distributions.installedr   Úpip._internal.exceptionsr   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._logr    Ú&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,   rP   rt   ré   r:   rS   rê   rD   rG   rb   re   rm   r]   rz   rU   rE   r9   ú<module>r     s+  ðÙ .ó
 Û 	Û Ý !Ý ß 1Ó 1å 9å QÝ G÷÷ ñ õ =ß NÝ 7Ý *Ý ,ß F÷õ 5Ý EÝ <Ý .÷÷ =Ý 2÷ó õ 7Ý 5Ý !á	�8Ó	€ð5Ø	ð5àð5ð ð5ð ð	5ð
 ð5ð ó5ð$N˜$ð N¨#ð N¸#ð NÀ$ó Nð ÷ð ó ðð" #'Ø#ñ	)Ø
ð)àð)ð ˜3‘-ð)ð �VÑð	)ð
 
ó)ð2 PTñ!Ø
ð!Ø& s™mð!Ø<DÀVÑ<Lð!à	ó!ð: #'Ø#ñ(Ø
ð(àð(ð ð(ð ð	(ð
 ˜3‘-ð(ð �VÑð(ð ˆd�^ó(ð^ #'ñ	Ø
ðàðð �VÑðð  ð	ð
 ˆc�]ó÷<FJò FJrE   