ó
    Þ j§  ã                  ó¼  • S SK J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  \\S   \\\4   4   r\" S\5      r " S	 S
\5      r " S S\5      r " S S\5      r\R,                  " S\R.                  5      r\R,                  " S5      r\R,                  " S5      r\R,                  " S5      rSS.SS jjrSS jrSS.     SS jjr    SS jrS S jr g)!é    )ÚannotationsN)ÚNewTypeÚTupleÚUnionÚcasté   )ÚTagÚ	parse_tag)ÚInvalidVersionÚVersion© Ú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   ó    ÚU/var/www/html/gaurav/venv/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ÜÐ-¨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   5   s   € Ü×"Ñ" 4Ó(°Ð4Ð4r   T)Ústrip_trailing_zeroc               ó  • [        U [        5      (       a   [        U 5      nOU n/ nUR                  S:w  a  UR                  UR                   S35        SR                  S UR                   5       5      nU(       a  [        R                  " SSU5      nUR                  U5        UR                  b1  UR                  SR                  S UR                   5       5      5        UR                  b  UR                  SUR                   35        UR                  b  UR                  S	UR                   35        UR                  b  UR                  S
UR                   35        SR                  U5      $ ! [         a    U s $ f = f)zu
This is very similar to Version.__str__, but has one subtle difference
with the way it handles the release segment.
r   Ú!Ú.c              3  ó6   #   • U H  n[        U5      v •  M     g 7fr.   ©Ústr©Ú.0Úxs     r   Ú	<genexpr>Ú'canonicalize_version.<locals>.<genexpr>P   s   é € Ð>©~¨!œs 1Ÿv˜vª~ùó   ‚z(\.0)+$Ú c              3  ó6   #   • U H  n[        U5      v •  M     g 7fr.   r6   r8   s     r   r;   r<   X   s   é € Ð8©Z¨œS ŸV˜VªZùr=   z.postz.devÚ+)Ú
isinstancer7   r   r   ÚepochÚappendÚjoinÚreleaseÚrer(   ÚpreÚpostÚdevÚlocal)Úversionr1   ÚparsedÚpartsÚrelease_segments        r   Úcanonicalize_versionrO   9   sE  € ô �'œ3×Ñð	Ü˜WÓ%‰Fð
 ˆà€Eð ‡|�|�qÓØ�‰˜Ÿ™�~ QÐ'Ô(ð —h‘hÑ>¨v¯~ª~Ó>Ó>€OÞäŸ&š& ¨R°ÓAˆØ	‡L�L�Ô!ð ‡z�zÑØ�‰�R—W‘WÑ8¨V¯ZªZÓ8Ó8Ô9ð ‡{�{ÑØ�‰�u˜VŸ[™[˜MÐ*Ô+ð ‡z�zÑØ�‰�t˜FŸJ™J˜<Ð(Ô)ð ‡|�|ÑØ�‰�q˜Ÿ™˜Ð'Ô(à�7‰7�5‹>ÐøôG ó 	àŠNð	ús   —E7 Å7FÆF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  S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): rS   zInvalid build number: z in 'Ú'r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitrF   r&   ÚUNICODEr,   r   r   Ú_build_tag_regexr   ÚBuildTagÚintÚgroupr
   )ÚfilenameÚdashesrM   Ú	name_partr*   rK   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss              r   Úparse_wheel_filenamerh   i   s’  € ð ×Ñ˜V×$Ñ$Ü"ØAÀ(ÀÐLó
ð 	
ð ˜˜ˆ}€HØ�^‰^˜CÓ €FØ�VÓÜ"Ø>¸x¸jÐIó
ð 	
ð �N‰N˜3 ¨¡
Ó+€EØ�a‘€IàˆyÓœBŸHšH ^°YÄÇ
Á
ÓKÑSÜ"Ð%;¸H¸:Ð#FÓGÐGÜ˜YÓ'€DðÜ˜% ™(Ó#ˆð �ƒ{Ø˜1‘Xˆ
Ü&×,Ñ,¨ZÓ8ˆØÑÜ&Ø(¨¨°E¸(¸À1ÐEóð ô ”X¤ K×$5Ñ$5°aÓ$8Ó 9¸;×;LÑ;LÈQÓ;OÐPÓQ‰àˆÜ�U˜2‘YÓ€DØ˜5Ð'Ð'øô! ó Ü"Ø8¸¸
ÐCó
àð	ûðús   Â0E Å
EÅEÅEc                ó~  • U R                  S5      (       a  U S [        S5      *  nO4U 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): )rX   Úlenr    Ú
rpartitionr,   r   r   )r`   Ú	file_stemrb   ÚsepÚversion_partr*   rK   rc   s           r   Úparse_sdist_filenamero   ”   sá   € Ø×Ñ˜×#Ñ#ØÐ.¤ I£˜Ð/‰	Ø	×	Ñ	˜6×	"Ñ	"Ø˜^¤ F£˜|Ð,‰	ä"ðØˆzðó
ð 	
ð $-×#7Ñ#7¸Ó#<Ñ €I�LÞÜ"Ð%=¸h¸ZÐ#HÓIÐIä˜YÓ'€DðÜ˜,Ó'ˆð ˆ?Ðøô ó Ü"Ø8¸¸
ÐCó
àð	ûðús   ÂB Â
B<Â(B7Â7B<)r*   r7   r"   ÚboolÚreturnr   )r*   r7   rq   rp   )rK   zVersion | strr1   rp   rq   r7   )r`   r7   rq   z8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]])r`   r7   rq   ztuple[NormalizedName, Version])!Ú
__future__r   rF   Útypingr   r   r   r   rg   r	   r
   rK   r   r   r^   r7   r]   r   Ú
ValueErrorr   r   r    ÚcompileÚ
IGNORECASEr%   r'   r/   r\   r,   r0   rO   rh   ro   r   r   r   Ú<module>rw      sü   ðõ
 #ã 	ß .Ó .ç  ß ,à��r‘˜E # s (™OÐ+Ñ,€ÙÐ)¨3Ó/€ô�*ô ô˜:ô ô˜:ô ð —*’*Ø0°"·-±-ó€ð —j’j Ó+Ð Ø—J’JÐQÓRÐ à—:’:˜lÓ+Ð ð 6;÷ 'ô5ð
 <@ñ-Øð-Ø48ð-àõ-ð`((Øð((à=ô((õVr   