§
    �’j])  ã                  ón  — d dl mZ d dlZd dlZd dlmZ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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!m"Z" e
rd dl#m$Z$ d dl%m&Z& d;d„Z'd<d„Z( ej)        dej*        ¦  «        Z+d=d„Z,d>d „Z-d?d%„Z.d@d(„Z/dAd+„Z0dBd.„Z1dCd1„Z2dDd4„Z3dEd8„Z4dFd:„Z5dS )Gé    )ÚannotationsN)ÚIterableÚIterator)ÚPath)ÚTYPE_CHECKING)ÚurljoinÚurlsplit)ÚPackageÚPackageArchiveÚPackageDirectoryÚPackageSdistÚ
PackageVcsÚPackageWheelÚPylockÚis_valid_pylock_path)ÚVersion)ÚDiagnosticPipErrorÚInstallationError)ÚLink)Útomllib)Úpath_to_urlÚurl_to_path)Ú
PipSession)ÚInstallRequirementÚireqr   Úbase_dirr   Úreturnr
   c           	     óZ  — |                      ¦   «         }|                      ¦   «         }| j        }|sJ ‚d }d }d }d }d }d }	| j        �r*|j        r?t          |j        j        |j        d |j        j        |j        j	        |j
        ¬¦  «        }�n„|j        r†t          t          t          |j        ¦  «        ¦  «                              ¦   «                              |¦  «                             ¦   «         |j        j        r|j        j        nd |j
        ¬¦  «        }n÷|j        rB|j        j        st)          ¦   «         ‚t+          |j        d |j        j        |j
        ¬¦  «        }n®t)          ¦   «         ‚|j        }|j        r„|j        j        st)          ¦   «         ‚t/          |j        ¦  «        }
|
j        r(t3          |
j        |j        |j        j        ¬¦  «        g}	n5t7          |
j        |j        |j        j        ¬¦  «        }nt)          ¦   «         ‚t9          |j        ||||||	¬¦  «        S )N)ÚtypeÚurlÚpathÚrequested_revisionÚ	commit_idÚsubdirectory)r!   Úeditabler$   )r    r!   Úhashesr$   )Únamer    r&   )r'   ÚversionÚvcsÚ	directoryÚarchiveÚsdistÚwheels)ÚresolveÚget_distÚdownload_infoÚ	is_directÚvcs_infor   r)   r    r"   r#   r$   Údir_infor   r   r   Úrelative_toÚas_posixr%   Úarchive_infor&   ÚNotImplementedErrorr   r(   r   Úis_wheelr   Úfilenamer   r
   Úcanonical_name)r   r   Údistr0   Úpackage_versionÚpackage_vcsÚpackage_directoryÚpackage_archiveÚpackage_sdistÚpackage_wheelsÚlinks              úHC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\utils\pylock.pyÚ(_pylock_package_from_install_requirementrD       sh  € ð ×ÒÑ!Ô!€HØ�=Š=‰?Œ?€DØÔ&€MØÐÐˆ=Ø€OØ€KØÐØ€OØ€MØ€NØ„~ñ ;(ØÔ!ð #	(Ý$Ø"Ô+Ô/Ø!Ô%ØØ#0Ô#9Ô#LØ'Ô0Ô:Ø*Ô7ðñ ô ˆK‰Kð Ô#ð 	(Ý 0å� ]Ô%6Ñ7Ô7Ñ8Ô8ß’W‘Y”Yß ’[ Ñ*Ô*ß’X‘Z”Zð %Ô-Ô6ð�MÔ*Ô3Ð3àà*Ô7ð!ñ !ô !ÐÐð Ô'ð 	(Ø Ô-Ô4ð ,Ý)Ñ+Ô+Ð+Ý,Ø!Ô%ØØ$Ô1Ô8Ø*Ô7ð	ñ ô ˆOˆOõ &Ñ'Ô'Ð'àœ,ˆØÔ%ð 	(Ø Ô-Ô4ð ,Ý)Ñ+Ô+Ð+Ý˜Ô)Ñ*Ô*ˆDØŒ}ð å Ø!œ]Ø)Ô-Ø,Ô9Ô@ðñ ô ð"��õ !-ØœØ%Ô)Ø(Ô5Ô<ð!ñ !ô !��õ &Ñ'Ô'Ð'ÝØÔ ØØØ#ØØØðñ ô ð ó    Úinstall_requirementsúIterable[InstallRequirement]r   c                óz   ‡— t          t          d¦  «        dt          ˆfd„| D ¦   «         d„ ¬¦  «        ¬¦  «        S )Nz1.0Úpipc              3  ó8   •K  — | ]}t          |‰¦  «        V — Œd S ©N)rD   )Ú.0r   r   s     €rC   ú	<genexpr>z3pylock_from_install_requirements.<locals>.<genexpr>{   sA   øè è € ð ð àõ 9¸¸xÑHÔHðð ð ð ð ð rE   c                ó   — | j         S rK   )r'   )Úps    rC   ú<lambda>z2pylock_from_install_requirements.<locals>.<lambda>   s   € ˜!œ&€ rE   )Úkey)Úlock_versionÚ
created_byÚpackages)r   r   Úsorted)rF   r   s    `rC   Ú pylock_from_install_requirementsrV   t   sh   ø€ õ Ý˜U‘^”^ØÝðð ð ð à0ðñ ô ð !Ð ð
ñ 
ô 
ð
ñ 
ô 
ð 
rE   z^(http|https|file)://ÚsÚstrÚboolc                óP   — t          t                               | ¦  «        ¦  «        S rK   )rY   Ú
_SCHEME_REÚmatch)rW   s    rC   Ú_is_urlr]   ‡   s   € Ý•
× Ò  Ñ#Ô#Ñ$Ô$Ð$rE   r9   c                óÒ   — t          | ¦  «        r;t          t          | ¦  «        j                             d¦  «        d         ¦  «        }nt          | ¦  «        }t          |¦  «        S )Nú/éÿÿÿÿ)r]   r   r	   r!   Ú
rpartitionr   )r9   r!   s     rC   Úis_valid_pylock_filenamerb   ‹   sX   € ÝˆxÑÔð Ý•H˜XÑ&Ô&Ô+×6Ò6°sÑ;Ô;¸BÔ?Ñ@Ô@ˆˆå�H‰~Œ~ˆÝ Ñ%Ô%Ð%rE   Úpylock_path_or_urlr!   ú
str | Noner    c                ó0  — |��t           j                             |¦  «        s¼t          | ¦  «        rct	          | |¦  «        }t          | ¦  «        }t          |¦  «        }|j        |j        f|j        |j        fk    rt          d|›d| ›�¦  «        ‚|S t          t           j         
                    t           j                             | ¦  «        |¦  «        ¦  «        S t          | ¦  «        rt          d|›d| ›�¦  «        ‚t          |¦  «        S |€J ‚|S )z¬Compute an url from a Pylock package path and url.

    Give priority to path over url. If path is relative,
    compute an url using the pylock file location as base.
    NzPath zC in pylock file obtained from a URL resolves outside its location: zFAbsolute paths are not supported in pylock files obtained from a URL: z in )Úosr!   Úisabsr]   r   r	   ÚschemeÚnetlocr   r   ÚjoinÚdirname)rc   r!   r    Údist_urlÚbaseÚtargets         rC   Ú_package_dist_urlro   “   sR  € ð ÑÝŒw�}Š}˜TÑ"Ô"ð 	%åÐ)Ñ*Ô*ð Ý"Ð#5°tÑ<Ô<�õ
  Ð 2Ñ3Ô3�Ý! (Ñ+Ô+�Ø”M 6¤=Ð1°d´kÀ4Ä;Ð5OÒOÐOÝ+ðQ ð Qð QØ:LðQð Qñô ð ð  �å"Ý”G—L’L¥¤§¢Ð1CÑ!DÔ!DÀdÑKÔKñô ð õ
 Ð)Ñ*Ô*ð Ý'ðFØ#'ðFð FØ/AðFð Fñô ð õ ˜tÑ$Ô$Ð$àˆˆˆØˆ
rE   r=   r   c                óÀ   — t          | |j        |j        ¦  «        }|j        › d|› d|j        › �}|j        r'd|v rt          d|›d| ›d�¦  «        ‚|d|j        z   z  }|S )Nú+ú@ú#úPackage URL úE cannot contain fragments in combination with subdirectory field (in ú)ú#subdirectory=)ro   r!   r    r   r#   r$   r   )rc   r=   rl   r    s       rC   Úpackage_vcs_requirement_urlrx   ½   s¥   € õ !Ð!3°[Ô5EÀ{ÄÑWÔW€HØÔÐ
BÐ
B Ð
BÐ
B¨;Ô+@Ð
BÐ
B€CØÔð ;Ø�#ˆ:ˆ:Ý#ðG˜sð Gð GØ/AðGð Gð Gñô ð ð 	Ð +Ô":Ñ:Ñ:ˆØ€JrE   r?   r   c                ó˜   — t          | |j        |j        ¦  «        }|j        r'd|v rt	          d|›d| ›d�¦  «        ‚|d|j        z   z  }|S )Nrs   rt   ru   rv   rw   )ro   r!   r    r$   r   )rc   r?   r    s      rC   Úpackage_archive_requirement_urlrz   Ì   s‹   € õ Ø˜OÔ0°/Ô2Eñô €Cð Ô#ð ?Ø�#ˆ:ˆ:Ý#ðG˜sð Gð GØ/AðGð Gð Gñô ð ð 	Ð /Ô">Ñ>Ñ>ˆØ€JrE   r>   r   c                óV  — t          | ¦  «        r'|                      d¦  «        st          d| ›�¦  «        ‚t          | |j        d ¦  «        }|                     d¦  «        sJ ‚|                     d¦  «        s|dz  }|j        r$||j        z  }|                     d¦  «        s|dz  }|S )Nzfile://z:Directory entries are not supported in remote pylock.toml r_   )r]   Ú
startswithr   ro   r!   Úendswithr$   )rc   r>   r    s      rC   Ú!package_directory_requirement_urlr~   Ü   s×   € õ Ð!Ñ"Ô"ð 
Ð+=×+HÒ+HÈÑ+SÔ+Sð 
Ýð&Ø!ð&ð &ñ
ô 
ð 	
õ Ð.Ð0AÔ0FÈÑ
MÔ
M€CØ�>Š>˜)Ñ$Ô$Ð$Ð$Ð$Ø�<Š<˜ÑÔð Øˆs‰
ˆØÔ%ð ØÐ Ô-Ñ-ˆØ�|Š|˜CÑ Ô ð 	Ø�3‰JˆCØ€JrE   r@   r   c                ó8   — t          | |j        |j        ¦  «        S rK   ©ro   r!   r    )rc   r@   s     rC   Úpackage_sdist_requirement_urlr�   ï   ó   € õ Ð/°Ô1CÀ]ÔEVÑWÔWÐWrE   Úpackage_wheelr   c                ó8   — t          | |j        |j        ¦  «        S rK   r€   )rc   rƒ   s     rC   Úpackage_wheel_requirement_urlr…   õ   r‚   rE   Úpath_or_urlÚsessionr   c                óÒ   — t          | ¦  «        j        }|dv r-ddlm} |                     | ¦  «        } ||¦  «         |j        S t          | ¦  «                             d¬¦  «        S )N)ÚhttpÚhttpsÚfiler   )Úraise_for_statuszutf-8)Úencoding)r	   rh   Úpip._internal.network.utilsrŒ   ÚgetÚtextr   Ú	read_text)r†   r‡   rh   rŒ   Úresps        rC   Ú_get_pylock_path_or_url_contentr“   û   s{   € å�kÑ"Ô"Ô)€FàÐ*Ð*Ð*à@Ð@Ð@Ð@Ð@Ð@à�{Š{˜;Ñ'Ô'ˆØÐ˜ÑÔÐØŒyÐõ �ÑÔ×&Ò&°Ð&Ñ8Ô8Ð8rE   úfIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]]c              #  ó¸  K  — 	 t          | |¦  «        }n2# t          $ r ‚ t          $ r}t          d| ›d|› �¦  «        |‚d }~ww xY w	 t	          j        t          j        |¦  «        ¦  «        }n(# t          $ r}t          d| ›d|› �¦  «        |‚d }~ww xY w	 |                     ¦   «         E d {V —† d S # t          $ r}t          d| ›d|› �¦  «        |‚d }~ww xY w)NzError reading pylock file z: zInvalid pylock file z,Cannot select requirements from pylock file )	r“   r   Ú	Exceptionr   r   Ú	from_dictr   ÚloadsÚselect)rc   r‡   Úpylock_contentÚexcÚlocks        rC   Úselect_from_pylock_path_or_urlr�     sY  è è € ðÝ8Ð9KÈWÑUÔUˆˆøÝð ð ð ØÝð ð ð ÝØFÐ);ÐFÐFÀÐFÐFñ
ô 
àð	øøøøðøøøð
ÝÔ¥¤¨nÑ =Ô =Ñ>Ô>ˆˆøÝð ð ð ÝØ@Ð#5Ð@Ð@¸3Ð@Ð@ñ
ô 
àð	øøøøðøøøð
ð —;’;‘=”=Ð Ð Ð Ð Ð Ð Ð Ð Ð øÝð ð ð ÝØXÐ;MÐXÐXÐSVÐXÐXñ
ô 
àð	øøøøðøøøsB   „ •A©?¿AÁ&A/ Á/
BÁ9BÂBÂB4 Â4
CÂ>CÃC)r   r   r   r   r   r
   )rF   rG   r   r   r   r   )rW   rX   r   rY   )r9   rX   r   rY   )rc   rX   r!   rd   r    rd   r   rX   )rc   rX   r=   r   r   rX   )rc   rX   r?   r   r   rX   )rc   rX   r>   r   r   rX   )rc   rX   r@   r   r   rX   )rc   rX   rƒ   r   r   rX   )r†   rX   r‡   r   r   rX   )rc   rX   r‡   r   r   r”   )6Ú
__future__r   rf   ÚreÚcollections.abcr   r   Úpathlibr   Útypingr   Úurllib.parser   r	   Úpip._vendor.packaging.pylockr
   r   r   r   r   r   r   r   Úpip._vendor.packaging.versionr   Úpip._internal.exceptionsr   r   Úpip._internal.models.linkr   Úpip._internal.utils.compatr   Úpip._internal.utils.urlsr   r   Úpip._internal.network.sessionr   Úpip._internal.req.req_installr   rD   rV   ÚcompileÚ
IGNORECASEr[   r]   rb   ro   rx   rz   r~   r�   r…   r“   r�   © rE   rC   ú<module>r¯      s–  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 2Ð 1Ð 1Ð 1Ð 1Ð 1à JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =àð AØ8Ð8Ð8Ð8Ð8Ð8Ø@Ð@Ð@Ð@Ð@Ð@ðQð Qð Qð Qðhð ð ð ð  ˆRŒZÐ/°´Ñ?Ô?€
ð%ð %ð %ð %ð&ð &ð &ð &ð'ð 'ð 'ð 'ðTð ð ð ðð ð ð ð ð ð ð ð&Xð Xð Xð XðXð Xð Xð Xð9ð 9ð 9ð 9ð  ð  ð  ð  ð  ð  rE   