HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/packaging/__pycache__/utils.cpython-310.pyc
o

we��	@sTddlZddlmZmZmZmZmZddlmZm	Z	ddl
mZmZeedee
effZede�ZGdd	�d	e�ZGd
d�de�ZGdd
�d
e�Ze�dej�Ze�d�Ze�d�Ze�d�Zdd�dededefdd�Zdedefdd�Zdd�deeefdedefdd �Zd!edeeeeeeffd"d#�Zd!edeeeffd$d%�Z dS)&�N)�	FrozenSet�NewType�Tuple�Union�cast�)�Tag�	parse_tag)�InvalidVersion�Version��NormalizedNamec@�eZdZdZdS)�InvalidNamezW
    An invalid distribution name; users should refer to the packaging user guide.
    N��__name__�
__module__�__qualname__�__doc__rrr�H/home/arjun/projects/env/lib/python3.10/site-packages/packaging/utils.pyr�rc@r)�InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    Nrrrrrrrrc@r)�InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    Nrrrrrrrrz)^([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�returncCs6|rt�|�std|����t�d|���}tt|�S)Nzname is invalid: �-)�_validate_regex�matchr�_canonicalize_regex�sub�lowerrr
)rr�valuerrr�canonicalize_name+s
r#cCst�|�duS�N)�_normalized_regexr)rrrr�is_normalized_name3sr&T)�strip_trailing_zero�versionr'cCst|t�rzt|�}Wn
ty|YSw|}g}|jdkr)|�|j�d��d�dd�|jD��}|r=t�	dd|�}|�|�|j
durU|�d�d	d�|j
D���|jdurc|�d
|j���|jdurq|�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�!�.cs��|]}t|�VqdSr$��str��.0�xrrr�	<genexpr>N��z'canonicalize_version.<locals>.<genexpr>z(\.0)+$�Ncsr+r$r,r.rrrr1Vr2z.postz.dev�+)�
isinstancer-rr
�epoch�append�join�release�rer �pre�post�dev�local)r(r'�parsed�parts�release_segmentrrr�canonicalize_version7s.
�






rB�filenamec
Cs<|�d�std|����|dd�}|�d�}|dvr"td|����|�d|d�}|d}d	|vs<t�d
|tj�durCtd|����t|�}zt|d�}Wnt	yc}ztd
|���|�d}~ww|dkr�|d}t
�|�}|dur�td|�d|�d���ttt
|�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: rz*Invalid wheel filename (invalid version): rFzInvalid build number: z in '�'r���)�endswithr�count�splitr:r�UNICODEr#rr
�_build_tag_regexr�BuildTag�int�groupr	)rC�dashesr@�	name_partrr(�e�
build_part�build_match�build�tagsrrr�parse_wheel_filenamegsH
�
�����
� rZc
Cs�|�d�r|dtd��}n|�d�r|dtd��}ntd|����|�d�\}}}|s6td|����t|�}z	t|�}W||fStyW}ztd|���|�d}~ww)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): rzInvalid sdist filename: z*Invalid sdist filename (invalid version): )rK�lenr�
rpartitionr#rr
)rC�	file_stemrT�sep�version_partrr(rUrrr�parse_sdist_filename�s0

��
�����r`)!r:�typingrrrrrrYrr	r(r
rrQr-rPr
�
ValueErrorrrr�compile�
IGNORECASErrr%rO�boolr#r&rBrZr`rrrr�<module>s>
�


�
��
�0�
�+