File: //opt/saltstack/salt/lib/python3.10/site-packages/packaging/__pycache__/utils.cpython-310.pyc
o
�N�g � @ s d dl Z d dlmZmZmZmZmZ ddlmZm Z ddl
mZmZ eed ee
ef f Zede�ZG dd � d e�ZG d
d� de�Ze �d�Ze �d
�Zdedefdd�Zdd�deeef dedefdd�Zdedeeeeee f fdd�Zdedeeef fdd�ZdS )� N)� FrozenSet�NewType�Tuple�Union�cast� )�Tag� parse_tag)�InvalidVersion�Version� �NormalizedNamec @ � e Zd ZdZdS )�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 � r c @ r )�InvalidSdistFilenamez^
An invalid sdist filename was found, users should refer to the packaging user guide.
Nr r r r r r r r z[-_.]+z (\d+)(.*)�name�returnc C s t �d| ��� }tt|�S )N�-)�_canonicalize_regex�sub�lowerr r
)r �valuer r r �canonicalize_name s
r T)�strip_trailing_zero�versionr c C s t | t�rzt| �}W n
ty | Y S w | }g }|jdkr)|�|j� d�� d�dd� |jD ��}|r=t� dd|�}|�|� |j
durU|�d�d d� |j
D ��� |jdurc|�d
|j� �� |jdurq|�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 �!�.c s � � | ]}t |�V qd S �N��str��.0�xr r r � <genexpr>= � � z'canonicalize_version.<locals>.<genexpr>z(\.0)+$� Nc s r$ r% r&