+
    ª¬‚j°  ã                  ó®  € ^ RI Ht ^ RIt^ RIHtHtHtHt ^RIH	t	H
t
 ^RIHt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]P0                  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# )é    )ÚannotationsN)ÚNewTypeÚTupleÚUnionÚcast)ÚTagÚ	parse_tag)ÚInvalidVersionÚVersionÚ_TrimmedReleaseÚ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   ó    ÚX/Users/cheyod/AIGC/DSH/.venv/lib/python3.14/site-packages/pip/_vendor/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+[a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9]z	(\d+)(.*)ÚvalidateFc               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚnameÚstrr   ÚboolÚreturnr   r   )Úformats   "r   Ú__annotate__r'   *   s!   € ÷ 
)ñ 
)˜Cð 
)¨dð 
)¸~ñ 
)r   c               ó  € V'       d+   \         P                  V 4      '       g   \        R V : 24      hV P                  4       P	                  RR4      P	                  RR4      pRV9   d   VP	                  RR4      pK  \        RV4      # )zname is invalid: Ú_Ú-Ú.z--r   )Ú_validate_regexÚ	fullmatchr   ÚlowerÚreplacer   )r"   r   Úvalues   &$ r   Úcanonicalize_namer1   *   st   € ßœ×1Ñ1°$×7Ò7ÜÐ-¨d©XÐ6Ó7Ð7ð �J‰J‹L× Ñ   cÓ*×2Ñ2°3¸Ó<€Eà
�%Œ-Ø—‘˜d CÓ(ŠÜÐ  %Ó(Ð(r   c               ó    € V ^8„  d   QhRRRR/# )r!   r"   r#   r%   r$   r   )r&   s   "r   r'   r'   7   s   € ÷ 9ñ 9˜Sð 9 Tñ 9r   c                ó0   € \         P                  V 4      R J# )N)Ú_normalized_regexr-   )r"   s   &r   Úis_normalized_namer5   7   s   € Ü×&Ñ& tÓ,°DÐ8Ð8r   Ústrip_trailing_zeroTc               ó$   € V ^8„  d   QhRRRRRR/# )r!   ÚversionzVersion | strr6   r$   r%   r#   r   )r&   s   "r   r'   r'   ;   s)   € ÷ Mñ MØðMØ48ðMàñMr   c               óÂ   € \        V \        4      '       d    \        V 4      p \        V'       d   \	        V 4      4      # T 4      #   \         d    \        T 4      u # i ; i)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'
)Ú
isinstancer#   r   r
   r   )r8   r6   s   &$r   Úcanonicalize_versionr;   ;   sX   € ô, �'œ3×Òð	 Ü˜gÓ&ˆGô ×+>Œ˜wÓ'ÓLÐLÀGÓLÐLøô ô 	 Ü�w“<Òð	 ús   ˜A ÁAÁAc               ó    € V ^8„  d   QhRRRR/# )r!   Úfilenamer#   r%   z8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]r   )r&   s   "r   r'   r'   Y   s   € ÷ ((ñ ((Øð((à=ñ((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  dk   T^,          p\        P                  T4      pTf   \        R	T R
T : 24      h\        R\        TP                  ^4      4      TP                  ^4      34      p	MRp	\        TR,          4      p
YEYš3#   \         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 ÚBuildTagéüÿÿÿ)é   é   r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitÚreÚmatchÚUNICODEr1   r   r
   Ú_build_tag_regexr   ÚintÚgroupr	   )r=   ÚdashesÚpartsÚ	name_partr"   r8   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss   &          r   Úparse_wheel_filenamerV   Y   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óð ô �Z¤# k×&7Ñ&7¸Ó&:Ó";¸[×=NÑ=NÈqÓ=QÐ!RÓS‰àˆÜ�U˜2•YÓ€DØ˜5Ð'Ð'øô! ô Ü"Ø8¸¹ÐEó
àð	ûðús   Â?E ÅE:Å%E5Å5E:c               ó    € V ^8„  d   QhRRRR/# )r!   r=   r#   r%   ztuple[NormalizedName, Version]r   )r&   s   "r   r'   r'   „   s   € ÷ ñ  3ð Ð+Iñ r   c                óŒ  € V P                  R 4      '       d   V R\        R 4      )  pM6V 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): )rE   Úlenr   Ú
rpartitionr1   r   r
   )r=   Ú	file_stemrP   ÚsepÚversion_partr"   r8   rQ   s   &       r   Úparse_sdist_filenamer^   „   sá   € Ø×Ñ˜×#Ò#ØÐ.¤ I£˜Ð/‰	Ø	×	Ñ	˜6×	"Ò	"Ø˜^¤ F£˜|Ð,‰	ä"ðØ‰|ðó
ð 	
ð $-×#7Ñ#7¸Ó#<Ñ €I�LßÜ"Ð%=¸h¹\Ð#JÓKÐKä˜YÓ'€DðÜ˜,Ó'ˆð ˆ?Ðøô ô Ü"Ø8¸¹ÐEó
àð	ûðús   ÂB# Â#CÂ.B>Â>Cr   )!Ú
__future__r   rH   Útypingr   r   r   r   rU   r   r	   r8   r
   r   r   rL   r#   r@   r   Ú
ValueErrorr   r   r   ÚcompileÚ
IGNORECASEr,   r4   rK   r1   r5   r;   rV   r^   r   r   r   Ú<module>rd      sÉ   ðõ
 #ã 	ß .Ó .ç  ß =Ñ =à��r•˜E # s (�OÐ+Õ,€ÙÐ)¨3Ó/€ô�*ô ô˜:ô ô˜:ô ð —*’*ÐEÀrÇ}Á}ÓU€Ø—J’JÐMÓNÐ à—:’:˜lÓ+Ð ð
)°U÷ 
)õ9ðMØ;?÷Mõ<((÷Vr   