
    j$                       S SK Jr  S SKrS SKrS SKJrJr  S SKJr  S SK	J
r
  S SKJrJr  S SKJrJrJrJrJrJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJ r J!r!  \
(       a  S SK"J#r#  S SK$J%r%        SS jr&      SS jr'\RP                  " S\RR                  5      r*SS jr+SS jr,        S S jr-      S!S jr.      S"S jr/      S#S jr0      S$S jr1      S%S jr2S&S jr3      S'S jr4g)(    )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)InstallRequirementc           
        UR                  5       nU R                  5       nU R                  nU(       d   eS nS nS nS nS nS n	U R                  (       Ga  UR                  (       a`  [        UR                  R                  UR                  S UR                  R                  UR                  R                  UR                  S9nGOUR                  (       a  [        [        [        UR                  5      5      R                  5       R                  U5      R!                  5       UR                  R"                  (       a  UR                  R"                  OS UR                  S9nGOPUR$                  (       aZ  UR$                  R&                  (       d
  [)        5       e[+        UR                  S UR$                  R&                  UR                  S9nO[)        5       eUR,                  nUR$                  (       a  UR$                  R&                  (       d
  [)        5       e[/        UR                  5      n
U
R0                  (       a5  [3        U
R4                  UR                  UR$                  R&                  S9/n	O>[7        U
R4                  UR                  UR$                  R&                  S9nO
[)        5       e[9        UR:                  UUUUUU	S9$ )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)ireqbase_dirdistr,   package_versionpackage_vcspackage_directorypackage_archivepackage_sdistpackage_wheelslinks              k/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pip/_internal/utils/pylock.py(_pylock_package_from_install_requirementrB       sE    !H==?D&&M=OKOMN~~~!!$"++//!%%#0#9#9#L#L'00::*77K ## 0]%6%678WY [*XZ %--66 "**33*77! '' --44)++,!%%$1188*77	O &'',,%% --44)++))*D}} !]])--,99@@" !-%))(55<<! &''  #     c           	     R   ^ [        [        S5      S[        U4S jU  5       S S9S9$ )Nz1.0pipc              3  <   >#    U  H  n[        UT5      v   M     g 7fN)rB   ).0r7   r8   s     rA   	<genexpr>3pylock_from_install_requirements.<locals>.<genexpr>{   s"      0D 9xHH0s   c                    U R                   $ rG   )r#   )ps    rA   <lambda>2pylock_from_install_requirements.<locals>.<lambda>   s    !&&rC   )key)lock_version
created_bypackages)r   r   sorted)install_requirementsr8   s    `rA    pylock_from_install_requirementsrU   t   s6     U^0 !

 
rC   z^(http|https|file)://c                >    [        [        R                  U 5      5      $ rG   )bool
_SCHEME_REmatch)ss    rA   _is_urlr[      s    
  #$$rC   c                    [        U 5      (       a1  [        [        U 5      R                  R	                  S5      S   5      nO[        U 5      n[        U5      $ )N/)r[   r   r	   r   
rpartitionr   )r5   r   s     rA   is_valid_pylock_filenamer`      sF    xHX&++66s;B?@H~%%rC   c                |   Ub  [         R                  R                  U5      (       da  [        U 5      (       a  [	        X5      $ [        [         R                  R                  [         R                  R                  U 5      U5      5      $ [        U 5      (       a  [        SU< SU < 35      e[        U5      $ Uc   eU$ )zCompute 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.
zFAbsolute paths are not supported in pylock files obtained from a URL: z in )	osr   isabsr[   r   r   joindirnamer   )pylock_path_or_urlr   r   s      rA   _package_dist_urlrg      s     ww}}T"")**188"GGLL1C!DdK 
 )**'##'($/A.DF  t$$
rC   c                    [        XR                  UR                  5      nUR                   SU SUR                   3nUR
                  (       a,  SU;   a  [        SU< SU < S35      eUSUR
                  -   -  nU$ )N+@#Package URL E cannot contain fragments in combination with subdirectory field (in )#subdirectory=)rg   r   r   r   r   r    r   )rf   r;   dist_urlr   s       rA   package_vcs_requirement_urlrq      s     !!35E5E{WHaz;+@+@*A
BC#:#sg &//A.DAG  	+":":::JrC   c                    [        XR                  UR                  5      nUR                  (       a,  SU;   a  [	        SU< SU < S35      eUSUR                  -   -  nU$ )Nrk   rl   rm   rn   ro   )rg   r   r   r    r   )rf   r=   r   s      rA   package_archive_requirement_urlrs      su     00/2E2EC ###:#sg &//A.DAG  	/">">>>JrC   c                v   [        U 5      (       a%  U R                  S5      (       d  [        SU < 35      e[        XR                  S 5      nUR                  S5      (       d   eUR                  S5      (       d  US-  nUR                  (       a)  X!R                  -  nUR                  S5      (       d  US-  nU$ )Nzfile://z:Directory entries are not supported in remote pylock.toml r]   )r[   
startswithr   rg   r   endswithr    )rf   r<   r   s      rA   !package_directory_requirement_urlrw      s     !""+=+H+H+S+SH!$&
 	
 .0F0F
MC>>)$$$$<<s
%%---||C  3JCJrC   c                B    [        XR                  UR                  5      $ rG   rg   r   r   )rf   r>   s     rA   package_sdist_requirement_urlrz           /1C1C]EVEVWWrC   c                B    [        XR                  UR                  5      $ rG   ry   )rf   package_wheels     rA   package_wheel_requirement_urlr~      r{   rC   c                    [        U 5      R                  nUS;   a+  SSKJn  UR	                  U 5      nU" U5        UR
                  $ [        U 5      R                  SS9$ )N)httphttpsfiler   )raise_for_statuszutf-8)encoding)r	   schemepip._internal.network.utilsr   gettextr   	read_text)path_or_urlsessionr   r   resps        rA   _get_pylock_path_or_url_contentr      sY    k"))F**@{{;'yy &&&88rC   c              #    #     [        X5      n [        R                  " [
        R                  " U5      5      n UR                  5        S h  vN   g ! [         a  n[        SU < SU 35      UeS nAff = f! [         a  n[        SU < SU 35      UeS nAff = f NO! [         a  n[        SU < SU 35      UeS nAff = f7f)NzError reading pylock file z: zInvalid pylock file z,Cannot select requirements from pylock file )r   	Exceptionr   r   	from_dictr   loadsselect)rf   r   pylock_contentexclocks        rA   select_from_pylock_path_or_urlr      s     89KUn =>;;=    ();(>bF
	  "#5"83%@
	 	! :;M:PPRSVRWX
	st   CA *A9 B  BB  C
A6A11A66C9
BBBCB   
C*B==CC)r7   r   r8   r   returnr
   )rT   zIterable[InstallRequirement]r8   r   r   r   )rZ   strr   rW   )r5   r   r   rW   )rf   r   r   
str | Noner   r   r   r   )rf   r   r;   r   r   r   )rf   r   r=   r   r   r   )rf   r   r<   r   r   r   )rf   r   r>   r   r   r   )rf   r   r}   r   r   r   )r   r   r   r   r   r   )rf   r   r   r   r   zfIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]])5
__future__r   rb   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   rB   rU   compile
IGNORECASErX   r[   r`   rg   rq   rs   rw   rz   r~   r   r    rC   rA   <module>r      s   " 	 	 .    *	 	 	 2 6 * . =8@Q
Q(,QQh6BF  ZZ/?
%&#-4><*4.< 0@&XX,8XXXX,8XX9 rC   