HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/packaging/__pycache__/utils.cpython-310.pyc
o

�N�g�	@sddlZddlmZmZmZmZmZddlmZm	Z	ddl
mZmZeedee
effZede�ZGdd	�d	e�ZGd
d�de�Ze�d�Ze�d
�Zdedefdd�Zdd�deeefdedefdd�Zdedeeeeeeffdd�Zdedeeeffdd�ZdS)�N)�	FrozenSet�NewType�Tuple�Union�cast�)�Tag�	parse_tag)�InvalidVersion�Version��NormalizedNamec@�eZdZdZdS)�InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    N��__name__�
__module__�__qualname__�__doc__rrr�C/opt/saltstack/salt/lib/python3.10/site-packages/packaging/utils.pyr�rc@r)�InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    Nrrrrrrrrz[-_.]+z	(\d+)(.*)�name�returncCst�d|���}tt|�S)N�-)�_canonicalize_regex�sub�lowerrr
)r�valuerrr�canonicalize_name s
rT)�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|�VqdS�N��str��.0�xrrr�	<genexpr>=��z'canonicalize_version.<locals>.<genexpr>z(\.0)+$�Ncsr$r%r&r(rrrr+Er,z.postz.dev�+)�
isinstancer'rr
Zepoch�append�join�release�rerZpreZpost�dev�local)r!r �parsed�partsZrelease_segmentrrr�canonicalize_version&s.
�






r8�filenamec
Cs|�d�std|����|dd�}|�d�}|dvr"td|����|�d|d�}|d}d	|vs<t�d
|tj�durCtd|����t|�}t|d�}|d
kry|d}t	�|�}|duritd|�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: rr<zInvalid build number: z in '�'r���)�endswithr�count�splitr3�match�UNICODErr�_build_tag_regexr�BuildTag�int�groupr	)
r9Zdashesr7�	name_partrr!Z
build_partZbuild_match�build�tagsrrr�parse_wheel_filenameVs6
�
�
� rMcCs�|�d�r|dtd��}n|�d�r|dtd��}ntd|����|�d�\}}}|s6td|����t|�}t|�}||fS)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): rzInvalid sdist filename: )rA�lenr�
rpartitionrr)r9Z	file_stemrJ�sepZversion_partrr!rrr�parse_sdist_filenamezs

��rQ)r3�typingrrrrrrLrr	r!r
rrHr'rGr
�
ValueErrorrr�compilerrFr�boolr8rMrQrrrr�<module>s2


�
��
�0�
�$