ó
    ÂÜhº  ã                  ó  • S SK Jr  S SKrS SKrS SKJrJrJrJr  SSK	J
r
Jr  SSKJrJrJr  \\S   \\\4   4   r\" S\5      r " S	 S
\5      r " S S\5      r " S S\5      r\R0                  " S\R2                  5      r\R0                  " S5      r\R0                  " S5      r\R0                  " S5      rSS.SS jjrSS jr\R@                  SS.     SS jj5       r!\!RD                  SS.S S jj5       r#    S!S jr$S"S jr%g)#é    )ÚannotationsN)ÚNewTypeÚTupleÚUnionÚcasté   )ÚTagÚ	parse_tag)ÚInvalidVersionÚVersionÚ_TrimmedRelease© ÚNormalizedNamec                  ó   • \ rS rSrSrSrg)ÚInvalidNameé   zO
An invalid distribution name; users should refer to the packaging user guide.
r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú1/usr/lib/python3/dist-packages/packaging/utils.pyr   r      ó   † ôr   r   c                  ó   • \ rS rSrSrSrg)ÚInvalidWheelFilenameé   zE
An invalid wheel filename was found, users should refer to PEP 427.
r   Nr   r   r   r   r   r      r   r   r   c                  ó   • \ rS rSrSrSrg)ÚInvalidSdistFilenameé   zV
An invalid sdist filename was found, users should refer to the packaging user guide.
r   Nr   r   r   r   r!   r!      r   r   r!   z)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$z[-_.]+z/^([a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9])$z	(\d+)(.*)F)Úvalidatec               óÊ   • U(       a)  [         R                  U 5      (       d  [        SU < 35      e[        R	                  SU 5      R                  5       n[        [        U5      $ )Nzname is invalid: Ú-)Ú_validate_regexÚmatchr   Ú_canonicalize_regexÚsubÚlowerr   r   )Únamer#   Úvalues      r   Úcanonicalize_namer-   .   sP   € Þœ×-Ñ-¨d×3Ñ3ÜÐ-¨d©XÐ6Ó7Ð7ä×#Ñ# C¨Ó.×4Ñ4Ó6€EÜ” Ó&Ð&r   c                ó0   • [         R                  U 5      S L$ )N)Ú_normalized_regexr'   )r+   s    r   Úis_normalized_namer0   6   s   € Ü×"Ñ" 4Ó(°Ð4Ð4r   T©Ústrip_trailing_zeroc               óV   • [        U(       a  [        [        U 5      5      5      $ U 5      $ )a‡  
Return a canonical form of a version as a string.

>>> canonicalize_version('1.0.1')
'1.0.1'

Per PEP 625, versions may have multiple canonical forms, differing
only by trailing zeros.

>>> canonicalize_version('1.0.0')
'1'
>>> canonicalize_version('1.0.0', strip_trailing_zero=False)
'1.0.0'

Invalid versions are returned unaltered.

>>> canonicalize_version('foo bar baz')
'foo bar baz'
)Ústrr   )Úversionr2   s     r   Úcanonicalize_versionr6   :   s#   € ô. Ö0CŒœs 7›|Ó,ÓQÐQÈÓQÐQr   c               óP   •  [        U 5      n[        X!S9$ ! [         a    U s $ f = f)Nr1   )r   r   r6   )r5   r2   Úparseds      r   Ú_r9   T   s4   € ðÜ˜Ó!ˆô   ÑPÐPøô ó àŠðús   ‚ –%¤%c                óÌ  • U R                  S5      (       d  [        SU < 35      eU S S n U R                  S5      nUS;  a  [        SU < 35      eU R                  SUS-
  5      nUS   nS	U;   d'  [        R
                  " S
U[        R                  5      c  [        SU < 35      e[        U5      n [        US   5      nUS:X  ai  US   n[        R                  U5      nUc  [        SU SU < 35      e[        [        [        UR                  S5      5      UR                  S5      45      n	OSn	[        US   5      n
XEXš4$ ! [         a  n[        SU < 35      UeS nAff = f)Nz.whlz3Invalid wheel filename (extension must be '.whl'): éüÿÿÿr%   )é   é   z0Invalid wheel filename (wrong number of parts): é   r   Ú__z^[\w\d._]*$zInvalid project name: r   z*Invalid wheel filename (invalid version): r=   zInvalid build number: z in r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitÚrer'   ÚUNICODEr-   r   r   Ú_build_tag_regexr   ÚBuildTagÚintÚgroupr
   )ÚfilenameÚdashesÚpartsÚ	name_partr+   r5   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss              r   Úparse_wheel_filenamerS   ^   s�  € ð ×Ñ˜V×$Ñ$Ü"ØAÀ(ÁÐNó
ð 	
ð ˜˜ˆ}€HØ�^‰^˜CÓ €FØ�VÓÜ"Ø>¸x¹lÐKó
ð 	
ð �N‰N˜3 ¨¡
Ó+€EØ�a‘€IàˆyÓœBŸHšH ^°YÄÇ
Á
ÓKÑSÜ"Ð%;¸H¹<Ð#HÓIÐIÜ˜YÓ'€DðÜ˜% ™(Ó#ˆð �ƒ{Ø˜1‘Xˆ
Ü&×,Ñ,¨ZÓ8ˆØÑÜ&Ø(¨¨°D¸¹ÐEóð ô ”X¤ K×$5Ñ$5°aÓ$8Ó 9¸;×;LÑ;LÈQÓ;OÐPÓQ‰àˆÜ�U˜2‘YÓ€DØ˜5Ð'Ð'øô! ó Ü"Ø8¸¹ÐEó
àð	ûðús   Â3E Å
E#ÅEÅE#c                ó„  • U R                  S5      (       a  U S [        S5      *  nO5U R                  S5      (       a  U S [        S5      *  nO[        SU < 35      eUR                  S5      u  p#nU(       d  [        SU < 35      e[	        U5      n [        U5      nXV4$ ! [         a  n[        SU < 35      UeS nAff = f)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r%   zInvalid sdist filename: z*Invalid sdist filename (invalid version): )rA   Úlenr!   Ú
rpartitionr-   r   r   )rJ   Ú	file_stemrM   ÚsepÚversion_partr+   r5   rN   s           r   Úparse_sdist_filenamerZ   ‰   sá   € Ø×Ñ˜×#Ñ#ØÐ.¤ I£˜Ð/‰	Ø	×	Ñ	˜6×	"Ñ	"Ø˜^¤ F£˜|Ð,‰	ä"ðØ‰|ðó
ð 	
ð $-×#7Ñ#7¸Ó#<Ñ €I�LÞÜ"Ð%=¸h¹\Ð#JÓKÐKä˜YÓ'€DðÜ˜,Ó'ˆð ˆ?Ðøô ó Ü"Ø8¸¹ÐEó
àð	ûðús   ÂB  Â 
B?Â*B:Â:B?)r+   r4   r#   ÚboolÚreturnr   )r+   r4   r\   r[   )r5   zVersion | strr2   r[   r\   r4   )r5   r4   r2   r[   r\   r4   )rJ   r4   r\   z8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]])rJ   r4   r\   ztuple[NormalizedName, Version])&Ú
__future__r   Ú	functoolsrD   Útypingr   r   r   r   rR   r	   r
   r5   r   r   r   rH   r4   rG   r   Ú
ValueErrorr   r   r!   ÚcompileÚ
IGNORECASEr&   r(   r/   rF   r-   r0   Úsingledispatchr6   Úregisterr9   rS   rZ   r   r   r   Ú<module>re      s7  ðõ
 #ã Û 	ß .Ó .ç  ß =Ñ =à��r‘˜E # s (™OÐ+Ñ,€ÙÐ)¨3Ó/€ô�*ô ô˜:ô ô˜:ô ð —*’*Ø0°"·-±-ó€ð —j’j Ó+Ð Ø—J’JÐQÓRÐ à—:’:˜lÓ+Ð ð 6;÷ 'ô5ð ×Ñà;?ñRØðRØ48ðRàôRó ðRð2 ×ÑØ37ö Qó ðQð((Øð((à=ô((õVr   