§
    ÇÁ³gº  ã                  óü  — d dl mZ d dl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j        ¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Zddœd(d„Zd)d„Zej         ddœd*d!„¦   «         Z!e!j"        ddœd+d"„¦   «         Z#d,d%„Z$d-d'„Z%dS ).é    )ÚannotationsN)ÚNewTypeÚTupleÚUnionÚcasté   )ÚTagÚ	parse_tag)ÚInvalidVersionÚVersionÚ_TrimmedRelease© ÚNormalizedNamec                  ó   — e Zd ZdZdS )ÚInvalidNamezW
    An invalid distribution name; users should refer to the packaging user guide.
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ó    úM/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/packaging/utils.pyr   r      ó   € € € € € ðð ð ð r   r   c                  ó   — e Zd ZdZdS )Ú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dS )Ú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)ÚvalidateÚnameÚstrr   ÚboolÚreturnc               óâ   — |r,t                                | ¦  «        st          d| ›�¦  «        ‚t                               d| ¦  «                             ¦   «         }t          t          |¦  «        S )Nzname is invalid: ú-)Ú_validate_regexÚmatchr   Ú_canonicalize_regexÚsubÚlowerr   r   )r   r   Úvalues      r   Úcanonicalize_namer+   .   sg   € Øð 8�×-Ò-¨dÑ3Ô3ð 8ÝÐ6¨dÐ6Ð6Ñ7Ô7Ð7å×#Ò# C¨Ñ.Ô.×4Ò4Ñ6Ô6€EÝ• Ñ&Ô&Ð&r   c                ó:   — t                                | ¦  «        d uS )N)Ú_normalized_regexr&   )r   s    r   Úis_normalized_namer.   6   s   € Ý×"Ò" 4Ñ(Ô(°Ð4Ð4r   T©Ústrip_trailing_zeroÚversionúVersion | strr0   c               ó\   — t          |rt          t          | ¦  «        ¦  «        n| ¦  «        S )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   )r1   r0   s     r   Úcanonicalize_versionr4   :   s+   € õ. Ð0CÐP��s 7™|œ|Ñ,Ô,Ð,ÈÑQÔQÐQr   c               ój   — 	 t          | ¦  «        }n# t          $ r | cY S w xY wt          ||¬¦  «        S )Nr/   )r   r   r4   )r1   r0   Úparseds      r   Ú_r7   T   sP   € ðÝ˜Ñ!Ô!ˆˆøÝð ð ð àˆˆˆðøøøõ   Ð<OÐPÑPÔPÐPs   ‚ ’! !Úfilenameú8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]c                óL  — |                       d¦  «        st          d| ›�¦  «        ‚| d d…         } |                      d¦  «        }|dvrt          d| ›�¦  «        ‚|                      d|dz
  ¦  «        }|d         }d	|v s t	          j        d
|t          j        ¦  «        €t          d| ›�¦  «        ‚t          |¦  «        }	 t          |d         ¦  «        }n%# t          $ r}t          d| ›�¦  «        |‚d }~ww xY w|dk    r„|d         }t                               |¦  «        }|€t          d|› d| ›�¦  «        ‚t          t          t          |                     d¦  «        ¦  «        |                     d¦  «        f¦  «        }	nd}	t          |d         ¦  «        }
|||	|
fS )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): r=   zInvalid build number: z in r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitÚrer&   ÚUNICODEr+   r   r   Ú_build_tag_regexr   ÚBuildTagÚintÚgroupr
   )r8   ÚdashesÚpartsÚ	name_partr   r1   ÚeÚ
build_partÚbuild_matchÚbuildÚtagss              r   Úparse_wheel_filenamerR   ^   sï  € ð ×Ò˜VÑ$Ô$ð 
Ý"ØNÀ(ÐNÐNñ
ô 
ð 	
ð ˜˜˜Œ}€HØ�^Š^˜CÑ Ô €FØ�VÐÐÝ"ØK¸xÐKÐKñ
ô 
ð 	
ð �NŠN˜3 ¨¡
Ñ+Ô+€EØ�a”€IàˆyÐÐ�BœH ^°YÅÄ
ÑKÔKÐSÝ"Ð#H¸HÐ#HÐ#HÑIÔIÐIÝ˜YÑ'Ô'€DðÝ˜% œ(Ñ#Ô#ˆˆøÝð ð ð Ý"ØE¸ÐEÐEñ
ô 
àð	øøøøðøøøð
 �‚{€{Ø˜1”Xˆ
Ý&×,Ò,¨ZÑ8Ô8ˆØÐÝ&ØE¨ÐEÐE¸ÐEÐEñô ð õ •X¥ K×$5Ò$5°aÑ$8Ô$8Ñ 9Ô 9¸;×;LÒ;LÈQÑ;OÔ;OÐPÑQÔQˆˆàˆÝ�U˜2”YÑÔ€DØ�'˜5 $Ð'Ð's   ÃC Ã
C<Ã$C7Ã7C<útuple[NormalizedName, Version]c                óÊ  — |                       d¦  «        r| d t          d¦  «         …         }n@|                       d¦  «        r| d t          d¦  «         …         }nt          d| ›�¦  «        ‚|                     d¦  «        \  }}}|st          d| ›�¦  «        ‚t	          |¦  «        }	 t          |¦  «        }n%# t          $ r}t          d| ›�¦  «        |‚d }~ww xY w||fS )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): )rA   Úlenr   Ú
rpartitionr+   r   r   )r8   Ú	file_stemrL   ÚsepÚversion_partr   r1   rM   s           r   Úparse_sdist_filenamerZ   ‰   s,  € Ø×Ò˜Ñ#Ô#ð 
ØÐ.¥ I¡¤˜Ð.Ô/ˆ	ˆ	Ø	×	Ò	˜6Ñ	"Ô	"ð 
Ø˜^¥ F¡¤˜|˜^Ô,ˆ	ˆ	å"ðØðð ñ
ô 
ð 	
ð $-×#7Ò#7¸Ñ#<Ô#<Ñ €Iˆs�LØð LÝ"Ð#J¸hÐ#JÐ#JÑKÔKÐKå˜YÑ'Ô'€DðÝ˜,Ñ'Ô'ˆˆøÝð ð ð Ý"ØE¸ÐEÐEñ
ô 
àð	øøøøðøøøð
 �'ˆ?Ðs   Â,B< Â<
CÃCÃC)r   r    r   r!   r"   r   )r   r    r"   r!   )r1   r2   r0   r!   r"   r    )r1   r    r0   r!   r"   r    )r8   r    r"   r9   )r8   r    r"   rS   )&Ú
__future__r   Ú	functoolsrD   Útypingr   r   r   r   rQ   r	   r
   r1   r   r   r   rH   r    rG   r   Ú
ValueErrorr   r   r   ÚcompileÚ
IGNORECASEr%   r'   r-   rF   r+   r.   Úsingledispatchr4   Úregisterr7   rR   rZ   r   r   r   ú<module>rc      s`  ðð
 #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à��r”˜E # s (œOÐ+Ô,€Ø�Ð)¨3Ñ/Ô/€ðð ð ð ð �*ñ ô ð ðð ð ð ð ˜:ñ ô ð ðð ð ð ð ˜:ñ ô ð ð �"”*Ø0°"´-ñô €ð !�b”j Ñ+Ô+Ð Ø�B”JÐQÑRÔRÐ à�2”:˜lÑ+Ô+Ð ð 6;ð 'ð 'ð 'ð 'ð 'ð 'ð5ð 5ð 5ð 5ð Ôà;?ðRð Rð Rð Rð Rñ ÔðRð2 ÔØ37ð Qð Qð Qð Qð Qñ ÔðQð((ð ((ð ((ð ((ðVð ð ð ð ð r   