U
    Ïvag”  ã                   @   sF  d dl Z d dlmZ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	„ d	eƒZG d
d„ deƒZG dd„ deƒZe  de j¡Ze  d¡Ze  d¡Ze  d¡Zddœeeedœdd„Zeedœdd„Zddœeeef eedœdd„Zeeeeeee f dœd d!„Zeeeef dœd"d#„Z dS )$é    N)Ú	FrozenSetÚNewTypeÚTupleÚUnionÚcasté   )ÚTagÚ	parse_tag)ÚInvalidVersionÚVersion© ÚNormalizedNamec                   @   s   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   r   r   úR/var/www/html/myvenv/lib/python3.8/site-packages/wheel/vendored/packaging/utils.pyr      s   r   c                   @   s   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      s   r   c                   @   s   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      s   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)Únamer   Úreturnc                C   s6   |rt  | ¡std| ›�ƒ‚t d| ¡ ¡ }tt|ƒS )Nzname is invalid: ú-)Ú_validate_regexÚmatchr   Ú_canonicalize_regexÚsubÚlowerr   r   )r   r   Úvaluer   r   r   Úcanonicalize_name+   s    r!   )r   r   c                 C   s   t  | ¡d k	S ©N)Ú_normalized_regexr   )r   r   r   r   Úis_normalized_name3   s    r$   T)Ústrip_trailing_zero)Úversionr%   r   c                C   s  t | tƒr2zt| ƒ}W q6 tk
r.   |  Y S X n| }g }|jdkrV| |j› d�¡ d dd„ |jD ƒ¡}|r~t 	dd|¡}| |¡ |j
dk	r®| d d	d„ |j
D ƒ¡¡ |jdk	rÊ| d
|j› �¡ |jdk	ræ| d|j› �¡ |jdk	�r| d|j› �¡ d |¡S )z�
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    r   ú!Ú.c                 s   s   | ]}t |ƒV  qd S r"   ©Ústr©Ú.0Úxr   r   r   Ú	<genexpr>N   s     z'canonicalize_version.<locals>.<genexpr>z(\.0)+$Ú Nc                 s   s   | ]}t |ƒV  qd S r"   r)   r+   r   r   r   r.   V   s     z.postz.devú+)Ú
isinstancer*   r   r
   ÚepochÚappendÚjoinÚreleaseÚrer   ÚpreÚpostÚdevÚlocal)r&   r%   ÚparsedÚpartsÚrelease_segmentr   r   r   Úcanonicalize_version7   s,    





r>   )Úfilenamer   c              
   C   sJ  |   d¡std| › �ƒ‚| d d… } |  d¡}|dkrDtd| › �ƒ‚|  d|d ¡}|d }d	|ksxt d
|tj¡d kr†td| › �ƒ‚t|ƒ}zt|d ƒ}W n2 t	k
rÐ } ztd| › �ƒ|‚W 5 d }~X Y nX |dk�r.|d }t
 |¡}|d k�rtd|› 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): rB   zInvalid build number: z in 'ú'r   éÿÿÿÿ)Úendswithr   ÚcountÚsplitr6   r   ÚUNICODEr!   r   r
   Ú_build_tag_regexr   ÚBuildTagÚintÚgroupr	   )r?   Údashesr<   Ú	name_partr   r&   ÚeÚ
build_partÚbuild_matchÚbuildÚtagsr   r   r   Úparse_wheel_filenameg   sD    
ÿ
ÿÿþ


ÿ rV   c              
   C   s¼   |   d¡r| d tdƒ … }n,|   d¡r<| d tdƒ … }ntd| › �ƒ‚| d¡\}}}|sltd| › �ƒ‚t|ƒ}zt|ƒ}W n2 tk
r² } ztd| › �ƒ|‚W 5 d }~X Y nX ||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): )rG   Úlenr   Ú
rpartitionr!   r   r
   )r?   Ú	file_stemrP   ÚsepÚversion_partr   r&   rQ   r   r   r   Úparse_sdist_filename’   s(    

ÿÿþr\   )!r6   Útypingr   r   r   r   r   rU   r   r	   r&   r
   r   rM   r*   rL   r   Ú
ValueErrorr   r   r   ÚcompileÚ
IGNORECASEr   r   r#   rK   Úboolr!   r$   r>   rV   r\   r   r   r   r   Ú<module>   s6   
 ÿ


ÿ
 þ1þ+