Current File : //lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc
a

[��fh�@s�ddlZddlmZmZmZmZmZddlmZm	Z	ddl
mZmZeedee
effZede�ZGdd	�d	e�ZGd
d�de�Ze�d�Ze�d
�Zeed�dd�Zeeefed�dd�Zeeeeeeefd�dd�Zeeeefd�dd�ZdS)�N)�	FrozenSet�NewType�Tuple�Union�cast�)�Tag�	parse_tag)�InvalidVersion�Version��NormalizedNamec@seZdZdZdS)�InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    N��__name__�
__module__�__qualname__�__doc__rrr�?/usr/lib/python3.9/site-packages/pip/_vendor/packaging/utils.pyrsrc@seZdZdZdS)�InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    Nrrrrrrsrz[-_.]+z	(\d+)(.*))�name�returncCst�d|���}tt|�S)N�-)�_canonicalize_regex�sub�lowerrr
)r�valuerrr�canonicalize_name sr)�versionrc
Cs�t|t�r0zt|�}Wq4ty,|YS0n|}g}|jdkrT|�|j�d��|�t�ddd�dd�|j	D����|j
dur�|�d�d	d�|j
D���|jdur�|�d
|j���|jdur�|�d|j���|j
dur�|�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�!z(\.0)+$��.css|]}t|�VqdS�N��str��.0�xrrr�	<genexpr><�z'canonicalize_version.<locals>.<genexpr>Ncss|]}t|�VqdSr"r#r%rrrr(@r)z.postz.dev�+)�
isinstancer$rr
Zepoch�append�rer�join�releaseZpreZpost�dev�local)r�parsed�partsrrr�canonicalize_version&s&

&



r4)�filenamerc
Cs|�d�std|����|dd�}|�d�}|dvrDtd|����|�d|d�}|d}d	|vsxt�d
|tj�dur�td|����t|�}t|d�}|d
kr�|d}t	�|�}|dur�td|�d|�d���t
tt|�
d��|�
d�f�}nd}t|d�}	||||	fS)Nz.whlz3Invalid wheel filename (extension must be '.whl'): ���r)��z0Invalid wheel filename (wrong number of parts): �r�__z^[\w\d._]*$zInvalid project name: rr8zInvalid build number: z in '�'r���)�endswithr�count�splitr-�match�UNICODErr�_build_tag_regexr�BuildTag�int�groupr	)
r5Zdashesr3�	name_partrrZ
build_partZbuild_matchZbuild�tagsrrr�parse_wheel_filenameQs6
�
�
� rHcCs�|�d�r|dtd��}n,|�d�r<|dtd��}ntd|����|�d�\}}}|sltd|����t|�}t|�}||fS)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): rzInvalid sdist filename: )r=�lenr�
rpartitionrr)r5Z	file_stemrF�sepZversion_partrrrrr�parse_sdist_filenameus

��rL)r-�typingrrrrrrGrr	rr
rrDr$rCr
�
ValueErrorrr�compilerrBrr4rHrLrrrr�<module>s


,�$