+
    SBi                        ^ RI t ^ RIHtHtHtHtHt ^RIHtH	t	 ^RI
HtHt ]]R,          ]]]3,          3,          t]! R]4      t ! R R]4      t ! R R	]4      t ! R
 R]4      t] P*                  ! R] P,                  4      t] P*                  ! R4      t] P*                  ! R4      t] P*                  ! R4      tRR/R R lltR R ltRR/R R lltR R ltR R ltR# )    N)	FrozenSetNewTypeTupleUnioncast)Tag	parse_tag)InvalidVersionVersionNormalizedNamec                       ] tR t^tRtRtR# )InvalidNamezO
An invalid distribution name; users should refer to the packaging user guide.
 N__name__
__module____qualname____firstlineno____doc____static_attributes__r       C/usr/lib/python3.14/site-packages/wheel/vendored/packaging/utils.pyr   r          r   r   c                       ] tR t^tRtRtR# )InvalidWheelFilenamezE
An invalid wheel filename was found, users should refer to PEP 427.
r   Nr   r   r   r   r   r      r   r   r   c                       ] tR t^tRtRtR# )InvalidSdistFilenamezV
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+)(.*)validateFc                <    V ^8  d   QhR\         R\        R\        /# )   namer   return)strboolr   )formats   "r   __annotate__r&   +   s!     ' 'C 'd '~ 'r   c                    V'       d+   \         P                  V 4      '       g   \        R V : 24      h\        P	                  RV 4      P                  4       p\        \        V4      # )zname is invalid: -)_validate_regexmatchr   _canonicalize_regexsublowerr   r   )r!   r   values   &$ r   canonicalize_namer/   +   sP    --d33-dX677##C.446E&&r   c                0    V ^8  d   QhR\         R\        /# )r    r!   r"   )r#   r$   )r%   s   "r   r&   r&   3   s     5 5S 5T 5r   c                 0    \         P                  V 4      R J# N)_normalized_regexr*   )r!   s   &r   is_normalized_namer4   3   s    ""4(44r   strip_trailing_zeroTc                ^    V ^8  d   QhR\         \        \        3,          R\        R\        /# )r    versionr5   r"   )r   r   r#   r$   )r%   s   "r   r&   r&   7   s-     - -7C< -:>--r   c               "   \        V \        4      '       d    \        V 4      pMT p. pVP                  ^ 8w  d   VP                  VP                   R24       RP                  R VP                   4       4      pV'       d   \        P                  ! RRV4      pVP                  V4       VP                  e2   VP                  RP                  R VP                   4       4      4       VP                  e   VP                  RVP                   24       VP                  e   VP                  RVP                   24       VP                  e   VP                  R	VP                   24       RP                  V4      #   \         d    T u # i ; i)
zu
This is very similar to Version.__str__, but has one subtle difference
with the way it handles the release segment.
!.c              3   8   "   T F  p\        V4      x  K  	  R # 5ir2   r#   .0xs   & r   	<genexpr>'canonicalize_version.<locals>.<genexpr>N   s     >~!s1vv~   z(\.0)+$ c              3   8   "   T F  p\        V4      x  K  	  R # 5ir2   r<   r=   s   & r   r@   rA   V   s     8ZSVVZrB   z.postz.dev+)
isinstancer#   r   r
   epochappendjoinreleaserer,   prepostdevlocal)r7   r5   parsedpartsrelease_segments   &$   r   canonicalize_versionrS   7   sE    '3	W%F
 E ||q~Q'( hh>v~~>>O&&RA	LL! zzRWW8VZZ889 {{uV[[M*+ zztFJJ<() ||q'(775>G  	N	s   E> >FFc          	      |    V ^8  d   QhR\         R\        \        \        \        \
        \        ,          3,          /# r    filenamer"   )r#   r   r   r   BuildTagr   r   )r%   s   "r   r&   r&   g   s.     (( ((((
>7Hin<=((r   c                    V P                  R 4      '       g   \        RV  24      hV RR p V P                  R4      pVR9  d   \        RV  24      hV P                  RV^,
          4      pV^ ,          pRV9   g)   \        P
                  ! RV\        P                  4      f   \        RV  24      h\        V4      p \        V^,          4      pT^8X  do   T^,          p\        P                  T4      pTf   \        R	T R
T  R24      h\        \        \        TP                  ^4      4      TP                  ^4      34      p	MRp	\        TR,          4      p
YEY3#   \         d   p\        RT  24      ThRp?ii ; i)z.whlz3Invalid wheel filename (extension must be '.whl'): Nr(   z0Invalid wheel filename (wrong number of parts): __z^[\w\d._]*$zInvalid project name: z*Invalid wheel filename (invalid version): zInvalid build number: z in '')      r   )endswithr   countsplitrK   r*   UNICODEr/   r   r
   _build_tag_regexr   rW   intgroupr	   )rV   dashesrQ   	name_partr!   r7   e
build_partbuild_matchbuildtagss   &          r   parse_wheel_filenamerm   g   s    V$$"A(L
 	
 }H^^C FV">xjI
 	
 NN3
+EaIyBHH^Y

KS"%;H:#FGGY'D%(# {1X
&,,Z8&(E(1E  XK$5$5a$8 9;;L;LQ;OPQU2YD5''!  "8
C
	s   <E E:&E55E:c                R    V ^8  d   QhR\         R\        \        \        3,          /# rU   )r#   r   r   r   )r%   s   "r   r&   r&      s$      3 51H+I r   c                    V P                  R 4      '       d   V R\        R 4      )  pM5V P                  R4      '       d   V R\        R4      )  pM\        RV  24      hVP                  R4      w  r#pV'       g   \        RV  24      h\	        V4      p \        V4      pWV3#   \         d   p\        RT  24      ThRp?ii ; i)z.tar.gzNz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r(   zInvalid sdist filename: z*Invalid sdist filename (invalid version): )r_   lenr   
rpartitionr/   r   r
   )rV   	file_stemrg   sepversion_partr!   r7   rh   s   &       r   parse_sdist_filenameru      s    ##.I/				6	"	"^F|,	"z
 	
 $-#7#7#< IL"%=hZ#HIIY'D,' ?  "8
C
	s   B! !C ,B;;C r   ) rK   typingr   r   r   r   r   rl   r   r	   r7   r
   r   rd   r#   rW   r   
ValueErrorr   r   r   compile
IGNORECASEr)   r+   r3   rc   r/   r4   rS   rm   ru   r   r   r   <module>rz      s   
 
 9 9   ,rE#s(O+,)3/* : :  **0"-- jj+ JJQR ::l+ 'U '5-AE-`((Vr   