
    q"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       M/var/www/html/env/lib/python3.13/site-packages/pip/_vendor/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-dX677##C.446E&&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s7|,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
XEX4$ ! [         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">xlK
 	
 NN3
+EaIyBHH^Y

KS"%;H<#HIIY'D%(# {1X
&,,Z8&(DE  XK$5$5a$8 9;;L;LQ;OPQU2Y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#< IL"%=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"-- jj+ JJQR ::l+  6; '5 ;?RR48RR R2 37 Q Q((((=((Vr   