Current File : //usr/lib/python3/dist-packages/packaging/__pycache__/utils.cpython-312.pyc |
�
R"f� � �� � d dl Z d dlmZmZmZmZmZ ddlmZm Z ddl
mZmZ eed ee
ef f Z ede� Z G d� d e� Z G d
� de� Z G d� d
e� Z e j* de j, � Z e j* d� Z e j* d� Z e j* d� Zdd�dededefd�Zdedefd�Zdd�deeef dedefd�Zdedeeeeee f fd�Zdedeeef fd �Z y)!� N)� FrozenSet�NewType�Tuple�Union�cast� )�Tag� parse_tag)�InvalidVersion�Version� �NormalizedNamec � � e Zd ZdZy)�InvalidNamezW
An invalid distribution name; users should refer to the packaging user guide.
N��__name__�
__module__�__qualname__�__doc__r
� �1/usr/lib/python3/dist-packages/packaging/utils.pyr r � � �r r c � � e Zd ZdZy)�InvalidWheelFilenamezM
An invalid wheel filename was found, users should refer to PEP 427.
Nr r
r r r r r r r c � � e Zd ZdZy)�InvalidSdistFilenamez^
An invalid sdist filename was found, users should refer to the packaging user guide.
Nr r
r r r r r r r z)^([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 �returnc � � |r#t j | � st d| ��� �t j d| � j � }t
t |� S )Nzname is invalid: �-)�_validate_regex�matchr �_canonicalize_regex�sub�lowerr r )r r �values r �canonicalize_namer( + sM � ���-�-�d�3��-�d�X�6�7�7��#�#�C��.�4�4�6�E����&�&r c �0 � t j | � d uS �N)�_normalized_regexr# )r s r �is_normalized_namer, 3 s � ��"�"�4�(��4�4r T)�strip_trailing_zero�versionr- c �� � t | t � r
t | � }n| }g }|j dk7 r|j |j � d�� dj
d� |j D � � }|rt j dd|� }|j |� |j �1|j dj
d� |j D � � � |j �|j d|j � �� |j �|j d |j � �� |j �|j d
|j � �� dj
|� S # t $ r | cY S w xY w)z�
This is very similar to Version.__str__, but has one subtle difference
with the way it handles the release segment.
r �!�.c 3 �2 K � | ] }t |� �� � y �wr* ��str��.0�xs r � <genexpr>z'canonicalize_version.<locals>.<genexpr>N s � �� �>�!�s�1�v�>�� �z(\.0)+$� c 3 �2 K � | ] }t |� �� � y �wr* r3 r5 s r r8 z'canonicalize_version.<locals>.<genexpr>V s � �� �8��S��V�8�r9 z.postz.dev�+)�
isinstancer4 r r �epoch�append�join�release�rer% �pre�post�dev�local)r. r- �parsed�parts�release_segments r �canonicalize_versionrJ 7 sB � � �'�3�� ��W�%�F�
���E� �|�|�q��
������~�Q�'�(� �h�h�>�v�~�~�>�>�O���&�&��R��A�� �L�L��!� �z�z��
���R�W�W�8�V�Z�Z�8�8�9� �{�{��
���u�V�[�[�M�*�+� �z�z��
���t�F�J�J�<�(�)� �|�|��
���q�����'�(�
�7�7�5�>���G � ��N� �s �E'