+
    ®¾jº  ã                  ó*  € ^ RI Ht ^ RI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]P0                  ! R]P2                  4      t]P0                  ! R4      t]P0                  ! R4      t]P0                  ! R4      tRR/R R lltR R lt]P@                  RR/R R ll4       t!]!PD                  RR/R R ll4       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   ó    ÚZ/home/ralf/ical-fahrzeuge/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[-_.]+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\        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_namer0   .   sP   € ßœ×-Ñ-¨d×3Ò3ÜÐ-¨d©XÐ6Ó7Ð7ä×#Ñ# C¨Ó.×4Ñ4Ó6€EÜ” Ó&Ð&r   c               ó    € V ^8„  d   QhRRRR/# )r!   r"   r#   r%   r$   r   )r&   s   "r   r'   r'   6   s   € ÷ 5ñ 5˜Sð 5 Tñ 5r   c                ó0   € \         P                  V 4      R J# )N)Ú_normalized_regexr+   )r"   s   &r   Úis_normalized_namer4   6   s   € Ü×"Ñ" 4Ó(°Ð4Ð4r   Ústrip_trailing_zeroTc               ó$   € V ^8„  d   QhRRRRRR/# )r!   ÚversionzVersion | strr5   r$   r%   r#   r   )r&   s   "r   r'   r'   ;   s)   € ÷ Rñ RØðRØ48ðRàñRr   c               óX   € \        V'       d   \        \        V 4      4      4      # T 4      # )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'
)r#   r   )r7   r5   s   &$r   Úcanonicalize_versionr9   :   s#   € ô. ×0CŒœs 7›|Ó,ÓQÐQÈÓQÐQr   c               ó$   € V ^8„  d   QhRRRRRR/# )r!   r7   r#   r5   r$   r%   r   )r&   s   "r   r'   r'   U   s&   € ÷ Qñ Qˆsð Q¨Dð Q¸Cñ Qr   c               óX   €  \        V 4      p\        Y!R 7      #   \         d    T u # i ; i))r5   )r   r
   r9   )r7   r5   Úparseds   &$ r   Ú_r=   T   s4   € ðÜ˜Ó!ˆô   ÔPÐPøô ô àŠðús   ‚ ™)¨)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'   ^   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  do   T^,          p\        P                  T4      pTf   \        R	T R
T : 24      h\        \        \        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 éüÿÿÿ)é   é   r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitÚrer+   ÚUNICODEr0   r   r
   Ú_build_tag_regexr   ÚBuildTagÚintÚgroupr	   )r?   ÚdashesÚpartsÚ	name_partr"   r7   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss   &          r   Úparse_wheel_filenamerW   ^   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   Â?E ÅE>Å)E9Å9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): )rF   Úlenr   Ú
rpartitionr0   r   r
   )r?   Ú	file_stemrQ   ÚsepÚversion_partr"   r7   rR   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   Ú	functoolsrI   Útypingr   r   r   r   rV   r   r	   r7   r
   r   r   rM   r#   rL   r   Ú
ValueErrorr   r   r   ÚcompileÚ
IGNORECASEr*   r,   r3   rK   r0   r4   Úsingledispatchr9   Úregisterr=   rW   r_   r   r   r   Ú<module>rh      s  ðõ
 #ã Û 	ß .Ó .ç  ß =Ñ =à��r•˜E # s (�OÐ+Õ,€ÙÐ)¨3Ó/€ô�*ô ô˜:ô ô˜:ô ð —*’*Ø0°"·-±-ó€ð —j’j Ó+Ð Ø—J’JÐQÓRÐ à—:’:˜lÓ+Ð ð'°U÷ 'õ5ð ×ÑðRØ;?öRó ðRð2 ×ÑðQ°4ö Qó ðQõ((÷Vr   