Ë
    ¬u™g§  ã                  ó®  — d dl mZ d dlZd dlmZmZmZmZ ddlm	Z	m
Z
 ddlmZmZ eed   eeef   f   Z ede«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z ej,                  dej.                  «      Z ej,                  d«      Z ej,                  d«      Z ej,                  d«      Zddœdd„Zdd„Zddœ	 	 	 	 	 dd„Z	 	 	 	 dd„Zd d„Z y)!é    )ÚannotationsN)ÚNewTypeÚTupleÚUnionÚcasté   )ÚTagÚ	parse_tag)ÚInvalidVersionÚVersion© ÚNormalizedNamec                  ó   — e Zd ZdZy)ÚInvalidNamezW
    An invalid distribution name; users should refer to the packaging user guide.
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ó    úV/var/www/deepseek_api/venv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.pyr   r      ó   „ òr   r   c                  ó   — e Zd ZdZy)ÚInvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    Nr   r   r   r   r   r      r   r   r   c                  ó   — e Zd ZdZy)ÚInvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    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               ó´   — |r#t         j                  | «      st        d| ›�«      ‚t        j	                  d| «      j                  «       }t        t        |«      S )Nzname is invalid: Ú-)Ú_validate_regexÚmatchr   Ú_canonicalize_regexÚsubÚlowerr   r   )Únamer   Úvalues      r   Úcanonicalize_namer'   -   sM   € Ùœ×-Ñ-¨dÔ3ÜÐ-¨d¨XÐ6Ó7Ð7ä×#Ñ# C¨Ó.×4Ñ4Ó6€EÜ” Ó&Ð&r   c                ó0   — t         j                  | «      d uS ©N)Ú_normalized_regexr!   )r%   s    r   Úis_normalized_namer+   5   s   € Ü×"Ñ" 4Ó(°Ð4Ð4r   T)Ústrip_trailing_zeroc               óð  — t        | t        «      r	 t        | «      }n| }g }|j                  dk7  r|j                  |j                  › d�«       dj                  d„ |j                  D «       «      }|rt        j                  dd|«      }|j                  |«       |j                  �1|j                  dj                  d„ |j                  D «       «      «       |j                  �|j                  d|j                  › �«       |j                  �|j                  d	|j                  › �«       |j                  �|j                  d
|j                  › �«       dj                  |«      S # t        $ r | cY S w xY w)z�
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    r   Ú!Ú.c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr)   ©Ústr©Ú.0Úxs     r   Ú	<genexpr>z'canonicalize_version.<locals>.<genexpr>P   s   è ø€ Ð>©~¨!œs 1Ÿv©~ùó   ‚z(\.0)+$Ú c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr)   r1   r3   s     r   r6   z'canonicalize_version.<locals>.<genexpr>X   s   è ø€ Ð8©Z¨œS ŸV©Zùr7   z.postz.devÚ+)Ú
isinstancer2   r   r   ÚepochÚappendÚjoinÚreleaseÚrer#   ÚpreÚpostÚdevÚlocal)Úversionr,   ÚparsedÚpartsÚrelease_segments        r   Úcanonicalize_versionrI   9   sB  € ô �'œ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   ’E' Å'E5Å4E5c                ó¬  — | j                  d«      st        d| › �«      ‚| d d } | j                  d«      }|dvrt        d| › �«      ‚| j                  d|dz
  «      }|d   }d	|v s%t	        j
                  d
|t        j                  «      €t        d| › �«      ‚t        |«      }	 t        |d   «      }|dk(  rh|d   }t        j                  |«      }|€t        d|› d| › d�«      ‚t        t        t        |j                  d«      «      |j                  d«      f«      }	nd}	t        |d   «      }
|||	|
fS # t        $ r}t        d| › �«      |‚d }~ww xY w)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): rM   zInvalid build number: z in 'Ú'r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitr@   r!   ÚUNICODEr'   r   r   Ú_build_tag_regexr   ÚBuildTagÚintÚgroupr
   )ÚfilenameÚdashesrG   Ú	name_partr%   rE   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss              r   Úparse_wheel_filenamerb   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   Â%D6 Ä6	EÄ?EÅEc                ób  — | j                  d«      r| d t        d«        }n/| j                  d«      r| d t        d«        }nt        d| › �«      ‚|j                  d«      \  }}}|st        d| › �«      ‚t	        |«      }	 t        |«      }||fS # t        $ r}t        d| › �«      |‚d }~ww xY w)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): )rR   Úlenr   Ú
rpartitionr'   r   r   )rZ   Ú	file_stemr\   ÚsepÚversion_partr%   rE   r]   s           r   Úparse_sdist_filenameri   ”   sß   € Ø×Ñ˜Ô#ØÐ.¤ I£˜Ð/‰	Ø	×	Ñ	˜6Ô	"Ø˜^¤ F£˜|Ð,‰	ä"ðØˆzðó
ð 	
ð $-×#7Ñ#7¸Ó#<Ñ €Iˆs�LÙÜ"Ð%=¸h¸ZÐ#HÓIÐIä˜YÓ'€DðÜ˜,Ó'ˆð �'ˆ?Ðøô ò Ü"Ø8¸¸
ÐCó
àð	ûðús   ÂB Â	B.ÂB)Â)B.)r%   r2   r   ÚboolÚreturnr   )r%   r2   rk   rj   )rE   zVersion | strr,   rj   rk   r2   )rZ   r2   rk   z8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]])rZ   r2   rk   ztuple[NormalizedName, Version])!Ú
__future__r   r@   Útypingr   r   r   r   ra   r	   r
   rE   r   r   rX   r2   rW   r   Ú
ValueErrorr   r   r   ÚcompileÚ
IGNORECASEr    r"   r*   rV   r'   r+   rI   rb   ri   r   r   r   Ú<module>rq      s  ðõ
 #ã 	ß .Ó .ç  ß ,à��r‘˜E # s (™OÐ+Ñ,€ÙÐ)¨3Ó/€ô�*ô ô˜:ô ô˜:ô ð �"—*‘*Ø0°"·-±-ó€ð !�b—j‘j Ó+Ð Ø�B—J‘JÐQÓRÐ à�2—:‘:˜lÓ+Ð ð 6;õ 'ó5ð
 <@ñ-Øð-Ø48ð-àó-ð`((Øð((à=ó((ôVr   