Ë
    ímxi°  ã                  óŽ  — 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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j0                  «      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Ú_TrimmedRelease© Ú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   ó    úF/home/htdocs/ttos/venv/lib/python3.12/site-packages/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+[a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9]z	(\d+)(.*)F)Úvalidatec               óú   — |r#t         j                  | «      st        d| ›�«      ‚| j                  «       j	                  dd«      j	                  dd«      }d|v r|j	                  dd«      }d|v rŒt        d|«      S )Nzname is invalid: Ú_ú-ú.z--r   )Ú_validate_regexÚ	fullmatchr   ÚlowerÚreplacer   )Únamer   Úvalues      r   Úcanonicalize_namer)   *   sz   € Ùœ×1Ñ1°$Ô7ÜÐ-¨d¨XÐ6Ó7Ð7ð �J‰J‹L× Ñ   cÓ*×2Ñ2°3¸Ó<€Eà
�%‰-Ø—‘˜d CÓ(ˆð �%Š-äÐ  %Ó(Ð(r   c                ó0   — t         j                  | «      d uS )N)Ú_normalized_regexr$   )r'   s    r   Úis_normalized_namer,   7   s   € Ü×&Ñ& tÓ,°DÐ8Ð8r   T)Ústrip_trailing_zeroc               ó¦   — t        | t        «      r	 t        | «      } t        |rt	        | «      «      S | «      S # t        $ r t        | «      cY S w xY w)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'
    )Ú
isinstanceÚstrr   r   r   )Úversionr-   s     r   Úcanonicalize_versionr2   ;   sU   € ô, �'œ3Ôð	 Ü˜gÓ&ˆGô Ñ+>Œ˜wÓ'ÓLÐLÀGÓLÐLøô ò 	 Ü�w“<Òð	 ús   ’9 ¹AÁA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(  rc|d   }t        j                  |«      }|€t        d|› d| ›�«      ‚t        d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): r6   zInvalid build number: z in ÚBuildTagr   éÿÿÿÿ)Úendswithr   ÚcountÚsplitÚreÚmatchÚUNICODEr)   r   r   Ú_build_tag_regexr   ÚintÚgroupr
   )ÚfilenameÚdashesÚpartsÚ	name_partr'   r1   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss              r   Úparse_wheel_filenamerM   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   Â%D1 Ä1	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): )r;   Úlenr   Ú
rpartitionr)   r   r   )rD   Ú	file_stemrG   ÚsepÚversion_partr'   r1   rH   s           r   Úparse_sdist_filenamerT   „   sß   € Ø×Ñ˜Ô#ØÐ.¤ I£˜Ð/‰	Ø	×	Ñ	˜6Ô	"Ø˜^¤ F£˜|Ð,‰	ä"ðØˆ|ðó
ð 	
ð $-×#7Ñ#7¸Ó#<Ñ €Iˆs�LÙÜ"Ð%=¸h¸\Ð#JÓKÐKä˜YÓ'€DðÜ˜,Ó'ˆð �'ˆ?Ðøô ò Ü"Ø8¸¸ÐEó
àð	ûðús   ÂB Â	B.ÂB)Â)B.)r'   r0   r   ÚboolÚreturnr   )r'   r0   rV   rU   )r1   zVersion | strr-   rU   rV   r0   )rD   r0   rV   z8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]])rD   r0   rV   ztuple[NormalizedName, Version])!Ú
__future__r   r>   Útypingr   r   r   r   rL   r	   r
   r1   r   r   r   rB   r0   r9   r   Ú
ValueErrorr   r   r   ÚcompileÚ
IGNORECASEr#   r+   rA   r)   r,   r2   rM   rT   r   r   r   ú<module>r\      sõ   ðõ
 #ã 	ß .Ó .ç  ß =Ñ =à��r‘˜E # s (™OÐ+Ñ,€ÙÐ)¨3Ó/€ô�*ô ô˜:ô ô˜:ô ð �"—*‘*ÐEÀrÇ}Á}ÓU€Ø�B—J‘JÐMÓNÐ à�2—:‘:˜lÓ+Ð ð 6;õ 
)ó9ð
 <@ñMØðMØ48ðMàóMð<((Øð((à=ó((ôVr   