� ��^ih� ��ddlZddlmZmZmZmZmZddlmZm Z ddl m Z m Z eedee effZede��ZGd�d e��ZGd �d e��Zejd ��Zejd ��Zdedefd�Zdee efdefd�Zdedeee eeeffd�Zdedeee ffd�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 ���/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/packaging/utils.pyrr����������rrc��eZdZdZdS)�InvalidSdistFilenamez^ An invalid sdist filename was found, users should refer to the packaging user guide. Nrr rrrrrrrz[-_.]+z (\d+)(.*)�name�returnc��t�d|�����}tt|��S)N�-)�_canonicalize_regex�sub�lowerrr)r�values r�canonicalize_namer# s3�� � #� #�C�� .� .� 4� 4� 6� 6�E� ��� &� &�&r�versionc ���t|t��r# t|��}n#t$r|cYSwxYw|}g}|jdkr|�|j�d���|�t jddd�d�|j D��������|j �7|�d�d�|j D������|j �|�d |j ����|j �|�d |j ����|j �|�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�!z(\.0)+$��.c3�4K�|]}t|��V��dS�N��str��.0�xs r� z'canonicalize_version..<s(����0P�0P�A��Q���0P�0P�0P�0P�0P�0PrNc3�4K�|]}t|��V��dSr*r+r-s rr0z'canonicalize_version..@s(����8�8��S��V�V�8�8�8�8�8�8rz.postz.dev�+)� isinstancer,r r �epoch�append�rer �join�release�pre�post�dev�local)r$�parsed�partss r�canonicalize_versionr?&s��� �'�3���� ��W�%�%�F�F��� � � ��N�N�N� ������ �E��|�q��� � � �� �'�'�'�(�(�(� �L�L��� �B����0P�0P���0P�0P�0P�(P�(P�Q�Q�R�R�R��z�� � � �R�W�W�8�8�V�Z�8�8�8�8�8�9�9�9��{�� � � �*�V�[�*�*�+�+�+��z�� � � �(�F�J�(�(�)�)�)��|�� � � �'���'�'�(�(�(� �7�7�5�>�>�s �'� 6�6�filenamec��|�d��std|�����|dd�}|�d��}|dvrtd|�����|�d|dz ��}|d}d |vs t jd |tj���td |�����t|��}t|d ��}|d kr�|d}t�|��}|�td|�d|�d����ttt|� 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: rrDzInvalid build number: z in '�'r �����)�endswithr�count�splitr6�match�UNICODEr#r �_build_tag_regexr�BuildTag�int�groupr ) r@�dashesr>� name_partrr$� build_part� build_match�build�tagss r�parse_wheel_filenamerXQs��� � � �V� $� $� �"� L�(� L� L� � � �����}�H� �^�^�C� � �F� �V���"� I�x� I� I� � � � �N�N�3��� � +� +�E��a��I� �y���B�H�^�Y�� �K�K�S�"�#F�H�#F�#F�G�G�G� �Y� '� '�D��e�A�h���G� ��{�{��1�X� �&�,�,�Z�8�8� � � �&�E��E�E�(�E�E�E��� ��X��K�$5�$5�a�$8�$8� 9� 9�;�;L�;L�Q�;O�;O�P�Q�Q����� �U�2�Y� � �D� �'�5�$� '�'rc�|�|�d��r|dtd�� �}n@|�d��r|dtd�� �}ntd|�����|�d��\}}}|std|�����t |��}t |��}||fS)Nz.tar.gzz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): rzInvalid sdist filename: )rI�lenr� rpartitionr#r )r@� file_stemrS�sep� version_partrr$s r�parse_sdist_filenamer_us�������#�#� ��.��I����.�/� � � � � �6� "� "� ��^��F� � �|�^�,� � �"� �� � � � � �$-�#7�#7��#<�#<� �I�s�L� �J�"�#H�h�#H�#H�I�I�I� �Y� '� '�D��l�#�#�G� �'�?�r)r6�typingrrrrrrWr r r$r r rPr,rOr� ValueErrorrr�compilerrNr#r?rXr_r rr�rcs���  � � � �9�9�9�9�9�9�9�9�9�9�9�9�9�9� � � � � � � � �,�,�,�,�,�,�,�,� ��r��E�#�s�(�O�+� ,����)�3�/�/�������:���� �����:���� !�b�j��+�+���2�:�l�+�+��'�C�'�N�'�'�'�'� (�%��� �"5�(�#�(�(�(�(�V!(��!(� �>�7�H�i��n� <�=�!(�!(�!(�!(�H�3��5���1H�+I������r