ó
    9—Ífv$  ã            	       óî  • S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
JrJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJrJr  \ R2                  " \5      rS
r\" SS9 " S S5      5       rS\S\\\4   4S jrS\S\\\ 4   4S jr!S\S\4S jr"S#S\S\ S\4S jjr#S\S\ S\4S jr$S\S\	\   S\\\	\   4   4S jr%S\S\4S jr&S\S\4S jr'S\S\\   4S jr(S\S\
\   4S jr)S \S!\S\4S" jr*g)$é    N)Ú	dataclass)ÚPath)ÚListÚOptionalÚSetÚTuple)ÚInvalidRequirementÚRequirement)ÚSpecifierSet)Úcanonicalize_name)Úhazard)Ú	PipxErrorÚ	pipx_wrap)z.whlz.tar.gzz.zipT)Úfrozenc                   óF   • \ rS rSr% \\   \S'   \\   \S'   \\   \S'   Srg)ÚParsedPackageé   Úvalid_pep508Ú	valid_urlÚvalid_local_path© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r
   Ú__annotations__ÚstrÚ__static_attributes__r   ó    Ú8/usr/lib/python3/dist-packages/pipx/package_specifier.pyr   r      s!   ‡ à˜;Ñ'Ó'Ø˜‰}ÓØ˜s‘mÖ#r   r   Úpackage_specÚreturnc                 óŠ   • [         R                  " SU 5      nU(       a"  UR                  S5      UR                  S5      4$ U S4$ )zReturns (path, extras_string)z(.+)(\[.+\])é   é   Ú )ÚreÚsearchÚgroup)r!   Úpackage_spec_extras_res     r    Ú_split_path_extrasr+   #   sC   € äŸYšY ¸ÓEÐÞØ&×,Ñ,¨QÓ/Ð1G×1MÑ1MÈaÓ1PÐQÐQà˜bÐ!Ð!r   Úpackage_pathc                 ó>   • [        U 5      nUR                  5       nX4$ ©N)r   Úexists)r,   Úpkg_pathÚpkg_path_existss      r    Ú_check_package_pathr2   ,   s!   € Ü�LÓ!€HØ—o‘oÓ'€OàÐ&Ð&r   c                 óÔ  • SnSnSn [        U 5      nUnU(       aj  WR                  R                  [        5      (       aF  [        UR                  5      u  pVU(       a  [        UR                  5       5      nO[        U S35      eU(       dC  [        R                  R                  U 5      nUR                  (       a  UR                  (       a  U nU(       dD  U(       d=  [        U 5      u  p‰[        U5      u  pVU(       a  [        UR                  5       5      U	-   nU(       d  U(       d  U(       d  [        SU  35      eU(       a	  U(       a  Sn[        UUUS9$ ! [         a     GNQf = f)z,Parse package_spec as would be given to pipxNz does not existzUnable to parse package spec: )r   r   r   )r
   r	   ÚnameÚendswithÚARCHIVE_EXTENSIONSr2   r   Úresolver   ÚurllibÚparseÚurlsplitÚschemeÚnetlocr+   r   )
r!   r   r   r   Úpackage_reqr,   Úpackage_path_existsÚ
parsed_urlÚpackage_path_strÚpackage_extras_strs
             r    Ú_parse_specifierrB   3   sB  € ð €LØ€IØÐð#Ü! ,Ó/ˆð #ˆæ˜×(Ñ(×1Ñ1Ô2D×EÑEä.AÀ+×BRÑBRÓ.SÑ+ˆæÜ" <×#7Ñ#7Ó#9Ó:Ñä˜|˜n¨OÐ<Ó=Ð=ö Ü—\‘\×*Ñ*¨<Ó8ˆ
Ø×× ×!2×!2Ø$ˆIö ¦	Ü1CÀLÓ1QÑ.Ð	Ü.AÐBRÓ.SÑ+ˆÞÜ" <×#7Ñ#7Ó#9Ó:Ð=OÑOÐæ¦	Ö2BÜÐ8¸¸ÐGÓHÐHæÖ(ð ˆäØ!ØØ)ñð øôM ó âðús   ˆE Å
E'Å&E'ÚrequirementÚremove_version_specifiersc                 óˆ   • S U l         [        U R                  5      U l        U(       a  [        S5      U l        [        U 5      $ )Nr&   )Úmarkerr   r4   r   Ú	specifierr   )rC   rD   s     r    Úpackage_or_url_from_pep508rH   l   s8   € Ø€KÔÜ(¨×)9Ñ)9Ó:€KÔÞ Ü ,¨RÓ 0ˆÔÜˆ{ÓÐr   Úparsed_packagec           	      ó†  • U R                   bh  U R                   R                  b<  [        R                  [	        S[
         SU R                   R                   S3SS95        [        U R                   US9nO3U R                  b  U R                  nOU R                  b  U R                  n[        R                  SW 35        U$ )Nz
                    z4  Ignoring environment markers
                    (zŽ) in package
                    specification. Use pipx options to specify this type of
                    information.
                    ú    ©Úsubsequent_indent©rD   zcleaned package spec: )
r   rF   ÚloggerÚwarningr   r   rH   r   r   Úinfo)rI   rD   Úpackage_or_urls      r    Ú!_parsed_package_to_package_or_urlrS   t   sÇ   € Ø×"Ñ"Ñ.Ø×&Ñ&×-Ñ-Ñ9Ü�N‰NÜðÜ�Hð Ø$×1Ñ1×8Ñ8Ð9ð :ðð '.ñô
ô 4Ø×'Ñ'Ø&?ñ
‰ð 
×	!Ñ	!Ñ	-Ø'×1Ñ1‰Ø	×	(Ñ	(Ñ	4Ø'×8Ñ8ˆä
‡K�KÐ(¨Ð(8Ð9Ô:ØÐr   Úpip_argsc                 ór  • [        U 5      n[        USS9nSU;   aG  UR                  (       d6  [        R	                  [        S[         S3SS95        UR                  S5        [        U5       HÄ  u  pEUR                  S5      (       d  M  US;   aK  US	-   nU[        U5      :  a6  X   n[        [        U5      R                  5       R                  5       5      X'   OTUR                  S
5      n[        U5      S:X  a4  Uu  pš[        U
5      R                  5       R                  5       nU	 S
U 3X'     X14$    X14$ )zêReturn package_or_url and pip_args suitable for pip install

Specifically:
* Strip any markers (e.g. python_version > "3.4")
* Ensure --editable is removed for any package_spec not a local path
* Convert local paths to absolute paths
FrN   z
--editableú
                z·  Ignoring --editable install option. pipx disallows it
                for anything but a local path, to avoid having to create a new
                src/ directory.
                rK   rL   )z-cz--constraintr$   Ú=r%   )rB   rS   r   rO   rP   r   r   ÚremoveÚ	enumerateÚ
startswithÚlenr   r   Ú
expanduserr7   Úsplit)r!   rT   rI   rR   ÚindexÚoptionÚargument_indexÚconstraints_fileÚoption_listÚkeyÚvalueÚ
value_paths               r    Úparse_specifier_for_installrf   �   sA  € ô & lÓ3€NÜ6°~ÐafÑg€NØ�xÓ¨×(G×(GÜ�‰ÜðÜ�ð ðð
 #*ñô		
ð 	�‰˜Ô%ä" 8Ö,‰ˆØ× Ñ Ð!7×8Ñ8ÙàÐ+Ó+Ø" Q™YˆNØ¤ H£Ó-Ø#+Ñ#;Ð Ü+.¬tÐ4DÓ/E×/PÑ/PÓ/R×/ZÑ/ZÓ/\Ó+]�Ñ(øð !Ÿ,™, sÓ+ˆKä�;Ó 1Ó$Ø(‘
�Ü! %›[×3Ñ3Ó5×=Ñ=Ó?�
Ø%( E¨¨:¨,Ð"7�‘ààÐ#Ð#ñ) -ð( Ð#Ð#r   c                 ó,   • [        U 5      n[        USS9$ )z˜Return package_or_url suitable for pipx metadata

Specifically:
* Strip any markers (e.g. python_version > 3.4)
* Convert local paths to absolute paths
FrN   ©rB   rS   ©r!   rI   s     r    Úparse_specifier_for_metadatarj   ½   s   € ô & lÓ3€NÜ,¨^ÐW\Ñ]Ð]r   c                 ó,   • [        U 5      n[        USS9$ )zÍReturn package_or_url suitable for pip upgrade

Specifically:
* Strip any version specifiers (e.g. package == 1.5.4)
* Strip any markers (e.g. python_version > 3.4)
* Convert local paths to absolute paths
TrN   rh   ri   s     r    Úparse_specifier_for_upgraderl   È   s   € ô & lÓ3€NÜ,¨^ÐW[Ñ\Ð\r   c                 ó(  • [        U 5      nUR                  (       a-  UR                  R                  b  UR                  R                  $ UR                  (       a/  [	        UR                  5      u  p#[        SU-   5      R                  $ [        5       $ )NÚnotapackage)rB   r   Úextrasr   r+   r
   Úset)r!   rI   Ú_rA   s       r    Ú
get_extrasrr   Ô   sr   € Ü% lÓ3€NØ×"×" ~×'BÑ'B×'IÑ'IÑ'UØ×*Ñ*×1Ñ1Ð1Ø	×	(×	(Ü"4°^×5TÑ5TÓ"UÑˆÜ˜=Ð+=Ñ=Ó>×EÑEÐEä‹5€Lr   c                 óÐ   •  [        U 5      nUR                  (       d$  UR                  R	                  [
        5      (       a  g [        UR                  5      $ ! [         a     g f = fr.   )r
   r	   Úurlr4   r5   r6   r   )r!   r=   s     r    Úvalid_pypi_nameru   ß   s[   € ðÜ! ,Ó/ˆð
 ‡‡˜+×*Ñ*×3Ñ3Ô4F×GÑGð ä˜[×-Ñ-Ó.Ð.øô ó áðús   ‚A Á
A%Á$A%rR   Úpackage_namec                 óx  •  [        U 5      nUR                  R                  [        5      (       a  [        U5      $ [        UR                  5      [        U5      :w  a;  [        R                  [        S[         SUR                  < SU< SU< S3	SS95        Xl        [        U5      $ ! [         a    U s $ f = f)NrV   z9  Name supplied in package specifier was
                z but package found has name z.
                Using z.
                rK   rL   )r
   r	   r4   r5   r6   r   r   rO   rP   r   r   )rR   rv   r=   s      r    Úfix_package_namerx   ï   sË   € ðÜ! .Ó1ˆð
 ×Ñ× Ñ Ô!3×4Ñ4Ü�;ÓÐä˜×)Ñ)Ó*Ô.?ÀÓ.MÓMÜ�‰ÜðÜ�ð Ø×!Ñ!Ñ$Ð$@ÀÑ@Pð QØ#Ñ&ð 'ðð
 #*ñô		
ð $Ôäˆ{ÓÐøô) ó àÒðús   ‚B* Â*B9Â8B9)F)+Úloggingr'   Úurllib.parser8   Údataclassesr   Úpathlibr   Útypingr   r   r   r   Úpackaging.requirementsr	   r
   Úpackaging.specifiersr   Úpackaging.utilsr   Úpipx.emojisr   Ú	pipx.utilr   r   Ú	getLoggerr   rO   r6   r   r   r+   Úboolr2   rB   rH   rS   rf   rj   rl   rr   ru   rx   r   r   r    Ú<module>r…      s‡  ðó Û 	Û Ý !Ý ß -Ó -ç BÝ -Ý -å ß *à	×	Ò	˜8Ó	$€à0Ð ñ �$Ñ÷$ð $ó ð$ð" Sð "¨U°3¸°8©_ô "ð' cð '¨e°D¸$°JÑ.?ô 'ð6 3ð 6¨=ô 6ñr¨Kð ÐTXð Ðehõ ð°mð Ð`dð Ðilô ð6+$¨cð +$¸TÀ#¹Yð +$È5ÐQTÐVZÐ[^ÑV_ÐQ_ÑK`ô +$ð\^¨sð ^°sô ^ð	]¨cð 	]°cô 	]ð˜Sð  S¨¡Xô ð/ #ð /¨(°3©-ô /ð  Sð ¸ð Àõ r   