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/.local/lib/python3.10/site-packages/packaging/__pycache__/utils.cpython-310.pyc
o

���g��@s4ddlmZddlZddlZddlmZmZmZmZddl	m
Z
mZddlm
Z
mZmZeedeeeffZede�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�Ze�dej�Ze�d�Ze�d�Ze�d�Zdd�d.dd�Zd/dd�Zej dd�d0d#d$��Z!e!j"dd�d1d%d&��Z#d2d)d*�Z$d3d,d-�Z%dS)4�)�annotationsN)�NewType�Tuple�Union�cast�)�Tag�	parse_tag)�InvalidVersion�Version�_TrimmedRelease��NormalizedNamec@�eZdZdZdS)�InvalidNamezW
    An invalid distribution name; users should refer to the packaging user guide.
    N��__name__�
__module__�__qualname__�__doc__r
r
r
�B/home/arjun/.local/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�name�strr�bool�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_name6sr(T��strip_trailing_zero�version�
Version | strr*cCst|r
tt|���S|�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'
    )rr)r+r*r
r
r�canonicalize_version:sr-cCs0zt|�}Wnty|YSwt||d�S)Nr))rr
r-)r+r*�parsedr
r
r�_Ts�r/�filename�8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]c
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
�|�}|durtd|�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): r4zInvalid build number: z in r
���)�endswithr�count�split�rer!�UNICODEr&rr
�_build_tag_regexr�BuildTag�int�groupr	)r0�dashes�parts�	name_partrr+�e�
build_part�build_match�build�tagsr
r
r�parse_wheel_filename^sH
�
�����
� rI�tuple[NormalizedName, Version]c
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): )r8�lenr�
rpartitionr&rr
)r0�	file_stemrC�sep�version_partrr+rDr
r
r�parse_sdist_filename�s0

��
�����rP)rrrrrr)rrrr)r+r,r*rrr)r+rr*rrr)r0rrr1)r0rrrJ)&�
__future__r�	functoolsr;�typingrrrrrHrr	r+r
rrr?rr>r�
ValueErrorrrr�compile�
IGNORECASEr r"r'r=r&r(�singledispatchr-�registerr/rIrPr
r
r
r�<module>s4
�



�
	+