§
    u”jŽ$  ã                  ój  — 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 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+„Z/dBd.„Z0dCd1„Z1dDd4„Z2dEd8„Z3dFd:„Z4dS )Gé    )ÚannotationsN)ÚIterableÚIterator)ÚPath)ÚTYPE_CHECKING)ÚurljoinÚurlsplit)ÚPackageÚPackageArchiveÚPackageDirectoryÚPackageSdistÚ
PackageVcsÚPackageWheelÚPylockÚis_valid_pylock_path)ÚVersion)Ú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   Údistr/   Úpackage_versionÚpackage_vcsÚpackage_directoryÚpackage_archiveÚpackage_sdistÚpackage_wheelsÚlinks              úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pip/_internal/utils/pylock.pyÚ(_pylock_package_from_install_requirementrC       si  € ð ×ÒÑ!Ô!€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)rC   )Ú.0r   r   s     €rB   ú	<genexpr>z3pylock_from_install_requirements.<locals>.<genexpr>{   sA   øè è € ð ð àõ 9¸¸xÑHÔHðð ð ð ð ð rD   c                ó   — | j         S rJ   )r&   )Úps    rB   ú<lambda>z2pylock_from_install_requirements.<locals>.<lambda>   s   € ˜!œ&€ rD   )Úkey)Úlock_versionÚ
created_byÚpackages)r   r   Úsorted)rE   r   s    `rB   Ú pylock_from_install_requirementsrU   t   sh   ø€ õ Ý˜U‘^”^ØÝðð ð ð à0ðñ ô ð !Ð ð
ñ 
ô 
ð
ñ 
ô 
ð 
rD   z^(http|https|file)://ÚsÚstrÚboolc                óP   — t          t                               | ¦  «        ¦  «        S rJ   )rX   Ú
_SCHEME_REÚmatch)rV   s    rB   Ú_is_urlr\   ‡   s   € Ý•
× Ò  Ñ#Ô#Ñ$Ô$Ð$rD   r8   c                óÒ   — t          | ¦  «        r;t          t          | ¦  «        j                             d¦  «        d         ¦  «        }nt          | ¦  «        }t          |¦  «        S )Nú/éÿÿÿÿ)r\   r   r	   r    Ú
rpartitionr   )r8   r    s     rB   Úis_valid_pylock_filenamera   ‹   sX   € ÝˆxÑÔð Ý•H˜XÑ&Ô&Ô+×6Ò6°sÑ;Ô;¸BÔ?Ñ@Ô@ˆˆå�H‰~Œ~ˆÝ Ñ%Ô%Ð%rD   Úpylock_path_or_urlr    ú
str | Noner   c                óˆ  — |�»t           j                             |¦  «        sit          | ¦  «        rt	          | |¦  «        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.
    NzFAbsolute paths are not supported in pylock files obtained from a URL: z in )	Úosr    Úisabsr\   r   r   ÚjoinÚdirnamer   )rb   r    r   s      rB   Ú_package_dist_urlri   “   sÝ   € ð ÐÝŒw�}Š}˜TÑ"Ô"ð 	%åÐ)Ñ*Ô*ð ÝÐ1°4Ñ8Ô8Ð8å"Ý”G—L’L¥¤§¢Ð1CÑ!DÔ!DÀdÑKÔKñô ð õ
 Ð)Ñ*Ô*ð Ý'ðFØ#'ðFð FØ/AðFð Fñô ð õ ˜tÑ$Ô$Ð$àˆˆˆØˆ
rD   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=)ri   r    r   r   r"   r#   r   )rb   r<   Údist_urlr   s       rB   Úpackage_vcs_requirement_urlrs   ±   s¥   € õ !Ð!3°[Ô5EÀ{ÄÑWÔW€HØÔÐ
BÐ
B Ð
BÐ
B¨;Ô+@Ð
BÐ
B€CØÔð ;Ø�#ˆ:ˆ:Ý#ðG˜sð Gð GØ/AðGð Gð Gñô ð ð 	Ð +Ô":Ñ:Ñ:ˆØ€JrD   r>   r   c                ó˜   — t          | |j        |j        ¦  «        }|j        r'd|v rt	          d|›d| ›d�¦  «        ‚|d|j        z   z  }|S )Nrm   rn   ro   rp   rq   )ri   r    r   r#   r   )rb   r>   r   s      rB   Úpackage_archive_requirement_urlru   À   s‹   € õ Ø˜OÔ0°/Ô2Eñô €Cð Ô#ð ?Ø�#ˆ:ˆ:Ý#ðG˜sð Gð GØ/AðGð Gð Gñô ð ð 	Ð /Ô">Ñ>Ñ>ˆØ€JrD   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   ri   r    Úendswithr#   )rb   r=   r   s      rB   Ú!package_directory_requirement_urlry   Ð   s×   € õ Ð!Ñ"Ô"ð 
Ð+=×+HÒ+HÈÑ+SÔ+Sð 
Ýð&Ø!ð&ð &ñ
ô 
ð 	
õ Ð.Ð0AÔ0FÈÑ
MÔ
M€CØ�>Š>˜)Ñ$Ô$Ð$Ð$Ð$Ø�<Š<˜ÑÔð Øˆs‰
ˆØÔ%ð ØÐ Ô-Ñ-ˆØ�|Š|˜CÑ Ô ð 	Ø�3‰JˆCØ€JrD   r?   r   c                ó8   — t          | |j        |j        ¦  «        S rJ   ©ri   r    r   )rb   r?   s     rB   Úpackage_sdist_requirement_urlr|   ã   ó   € õ Ð/°Ô1CÀ]ÔEVÑWÔWÐWrD   Úpackage_wheelr   c                ó8   — t          | |j        |j        ¦  «        S rJ   r{   )rb   r~   s     rB   Úpackage_wheel_requirement_urlr€   é   r}   rD   Ú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	   ÚschemeÚpip._internal.network.utilsr‡   ÚgetÚtextr   Ú	read_text)r�   r‚   r‰   r‡   Úresps        rB   Ú_get_pylock_path_or_url_contentr�   ï   s{   € å�kÑ"Ô"Ô)€FàÐ*Ð*Ð*à@Ð@Ð@Ð@Ð@Ð@à�{Š{˜;Ñ'Ô'ˆØÐ˜ÑÔÐØŒyÐõ �ÑÔ×&Ò&°Ð&Ñ8Ô8Ð8rD   úfIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]]c              #  ó¤  K  — 	 t          | |¦  «        }n(# 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�   Ú	Exceptionr   r   Ú	from_dictr   ÚloadsÚselect)rb   r‚   Úpylock_contentÚexcÚlocks        rB   Úselect_from_pylock_path_or_urlr™   ÿ   sB  è è € ðÝ8Ð9KÈWÑUÔUˆˆøÝð ð ð ÝØFÐ);ÐFÐFÀÐFÐFñ
ô 
àð	øøøøðøøøð
ÝÔ¥¤¨nÑ =Ô =Ñ>Ô>ˆˆøÝð ð ð ÝØ@Ð#5Ð@Ð@¸3Ð@Ð@ñ
ô 
àð	øøøøðøøøð
Ø—;’;‘=”=Ð Ð Ð Ð Ð Ð Ð Ð Ð øÝð ð ð ÝØXÐ;MÐXÐXÐSVÐXÐXñ
ô 
àð	øøøøðøøøs?   „ •
:Ÿ5µ:¾&A% Á%
B
Á/BÂB
ÂB* Â*
CÂ4C
Ã
C)r   r   r   r   r   r
   )rE   rF   r   r   r   r   )rV   rW   r   rX   )r8   rW   r   rX   )rb   rW   r    rc   r   rc   r   rW   )rb   rW   r<   r   r   rW   )rb   rW   r>   r   r   rW   )rb   rW   r=   r   r   rW   )rb   rW   r?   r   r   rW   )rb   rW   r~   r   r   rW   )r�   rW   r‚   r   r   rW   )rb   rW   r‚   r   r   r�   )5Ú
__future__r   re   Ú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   Úpip._internal.models.linkr   Úpip._internal.utils.compatr   Úpip._internal.utils.urlsr   r   Úpip._internal.network.sessionr   Úpip._internal.req.req_installr   rC   rU   ÚcompileÚ
IGNORECASErZ   r\   ra   ri   rs   ru   ry   r|   r€   r�   r™   © rD   rB   ú<module>r«      s�  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 2Ð 1Ð 1Ð 1Ð 1Ð 1à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =àð AØ8Ð8Ð8Ð8Ð8Ð8Ø@Ð@Ð@Ð@Ð@Ð@ðQð Qð Qð Qðhð ð ð ð  ˆRŒZÐ/°´Ñ?Ô?€
ð%ð %ð %ð %ð&ð &ð &ð &ðð ð ð ð<ð ð ð ðð ð ð ð ð ð ð ð&Xð Xð Xð XðXð Xð Xð Xð9ð 9ð 9ð 9ð ð ð ð ð ð rD   