Current File : //usr/lib/python3/dist-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-312.pyc
�


_�d�	�^�ddlZddlmZmZmZmZmZddlmZm	Z	ddl
mZmZeedee
effZede�ZGd�d	e�ZGd
�de�Zej(d�Zej(d
�Zdedefd�Zdd�deeefdedefd�Zdedeeeeeeffd�Zdedeeeffd�Zy)�N)�	FrozenSet�NewType�Tuple�Union�cast�)�Tag�	parse_tag)�InvalidVersion�Version��NormalizedNamec��eZdZdZy)�InvalidWheelFilenamezM
    An invalid wheel filename was found, users should refer to PEP 427.
    N��__name__�
__module__�__qualname__�__doc__r
��D/usr/lib/python3/dist-packages/setuptools/_vendor/packaging/utils.pyrr���rrc��eZdZdZy)�InvalidSdistFilenamez^
    An invalid sdist filename was found, users should refer to the packaging user guide.
    Nrr
rrrrrrrz[-_.]+z	(\d+)(.*)�name�returnc�j�tjd|�j�}tt|�S)N�-)�_canonicalize_regex�sub�lowerrr)r�values  r�canonicalize_namer# s*���#�#�C��.�4�4�6�E����&�&rT)�strip_trailing_zero�versionr$c���t|t�r
	t|�}n|}g}|jdk7r|j|j�d��dj
d�|jD��}|rtjdd|�}|j|�|j�1|jdj
d�|jD���|j�|jd|j���|j�|jd	|j���|j�|jd
|j���dj
|�S#t$r|cYSwxYw)z�
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    r�!�.c3�2K�|]}t|����y�w�N��str��.0�xs  r�	<genexpr>z'canonicalize_version.<locals>.<genexpr>=s����>�!�s�1�v�>���z(\.0)+$�c3�2K�|]}t|����y�wr*r+r-s  rr0z'canonicalize_version.<locals>.<genexpr>Es����8��S��V�8�r1z.postz.dev�+)�
isinstancer,rr�epoch�append�join�release�rer �pre�post�dev�local)r%r$�parsed�parts�release_segments     r�canonicalize_versionrB&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'�'E5�4E5�filenamec�j�|jd�std|����|dd}|jd�}|dvrtd|����|jd|dz
�}|d}d	|vs%t	j
d
|tj��td|����t|�}t|d�}|d
k(rh|d}tj|�}|�td|�d|�d���ttt|jd��|jd�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: rrGzInvalid build number: z in '�'r
���)�endswithr�count�splitr:�match�UNICODEr#r�_build_tag_regexr�BuildTag�int�groupr
)
rC�dashesr@�	name_partrr%�
build_part�build_match�build�tagss
          r�parse_wheel_filenamer[Vs`�����V�$�"�A�(��L�
�	
����}�H�
�^�^�C�
 �F�
�V��"�>�x�j�I�
�	
�
�N�N�3���
�+�E��a��I��y��B�H�H�^�Y��
�
�K�S�"�%;�H�:�#F�G�G��Y�'�D��e�A�h��G�
��{��1�X�
�&�,�,�Z�8����&�(���E�(��1�E��
��X��K�$5�$5�a�$8� 9�;�;L�;L�Q�;O�P�Q�����U�2�Y��D��'�5�$�'�'rc� �|jd�r|dtd�}n/|jd�r|dtd�}ntd|����|jd�\}}}|std|����t	|�}t|�}||fS)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): rzInvalid sdist filename: )rL�lenr�
rpartitionr#r)rC�	file_stemrV�sep�version_partrr%s       r�parse_sdist_filenamerbzs�������#��.��I���/�	�	�	�	�6�	"��^��F��|�,�	�"���z�
�
�	
�$-�#7�#7��#<� �I�s�L��"�%=�h�Z�#H�I�I��Y�'�D��l�#�G��'�?�r)r:�typingrrrrrrZr	r
r%rrrSr,rRr�
ValueErrorrr�compilerrQr#�boolrBr[rbr
rr�<module>rgs��

�9�9� �,���r��E�#�s�(�O�+�,���)�3�/���:���:��!�b�j�j��+���2�:�:�l�+��'�C�'�N�'�BF�-�
�7�C�<�
 �-�:>�-��-�`!(��!(�
�>�7�H�i��n�<�=�!(�H�3��5���1H�+I�r