� ��^i�� ��dZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z gd�Z e d��ZdZejd��ZGd�d e��Z dd eeefd e ed ed e ede ef d�Z dd eeefd e ed ed e edef d�Zdee dddfd�Zdedeeeffd�ZGd�d��ZGd�d��ZGd�d��Ze eeefZGd�d��ZdS)z PEP 610 �N)�Any�Dict�Iterable�Optional�Type�TypeVar�Union)� DirectUrl�DirectUrlValidationError�DirInfo� ArchiveInfo�VcsInfo�Tzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c��eZdZdS)r N)�__name__� __module__� __qualname__����/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/models/direct_url.pyr r s�������Drr �d� expected_type�key�default�returnc��||vr|S||}t||��s$td�|||�����|S)z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {}))� isinstancer �format�rrrr�values r�_getr!s`�� �!�|�|��� �c�F�E� �e�]� +� +� �&� ;� B� B��s�M� � � � � � �Lrc�R�t||||��}|�t|�d����|S)Nz must have a value)r!r rs r� _get_requiredr#)s8�� ��M�3�� 0� 0�E� �}�&�#�'A�'A�'A�B�B�B� �Lr�infos�InfoTypec��d�|D��}|std���t|��dkrtd���|d�J�|dS)Nc��g|]}|�|��S�Nr)�.0�infos r� z#_exactly_one_of..3s�� 8� 8� 8�d�t�'7�T�'7�'7�'7rz/missing one of archive_info, dir_info, vcs_info�z1more than one of archive_info, dir_info, vcs_infor)r �len)r$s r�_exactly_one_ofr.2ss�� 8� 8�e� 8� 8� 8�E� � �&� =� � � � �5�z�z�A�~�~�&� ?� � � � ��8� � � � ��8�Or�kwargsc �>�d�|���D��S)z Make dict excluding None values.c��i|] \}}|�||�� Sr(r)r)�k�vs r� z _filter_none..Bs�� =� =� =�T�Q��q�}�A�q�}�}�}r)�items)r/s r� _filter_noner6@s�� =� =�V�\�\�^�^� =� =� =�=rc ���eZdZdZ d dededeedeedeeddf d �Zed eeee fdedfd ���Z deee ffd �Z dS)r�vcs_infoN�vcs� commit_id�requested_revision�resolved_revision�resolved_revision_typerc�L�||_||_||_||_||_dSr(�r9r;r:r<r=)�selfr9r:r;r<r=s r�__init__zVcsInfo.__init__Hs0�����"4���"���!2���&<��#�#�#rrc ���|�dS|t|td��t|td��t|td��t|td��t|td�����S)Nr9r:r;r<r=)r9r:r;r<r=)r#�strr!��clsrs r� _from_dictzVcsInfo._from_dictVss�� �9��4��s��a��e�,�,�#�A�s�K�8�8�#�A�s�,@�A�A�"�1�c�+>�?�?�#'��3�0H�#I�#I�  � � � rc�\�t|j|j|j|j|j���S)Nr?)r6r9r;r:r<r=�r@s r�_to_dictzVcsInfo._to_dictbs5�����#�6��n�"�4�#'�#>�  � � � r)NNN) rrr�namerCrrA� classmethodrrrFrIrrrrrEs������� �D� -1�+/�04� =� =� � =�� =�%�S�M� =� $�C�=� =� !)�� � =� � =� =� =� =��  �8�D��c��N�3�  ���8K�  �  �  ��[�  � �$�s�C�x�.� � � � � � rrc��eZdZdZ d deeddfd�Zedeeee fdedfd���Z deee ffd�Z dS) r � archive_infoN�hashrc��||_dSr(�rN)r@rNs rrAzArchiveInfo.__init__os���� � � rrc�J�|�dS|t|td�����S)NrNrP)r!rCrDs rrFzArchiveInfo._from_dictus+�� �9��4��s��Q��V�,�,�-�-�-�-rc�,�t|j���S)NrP)r6rNrHs rrIzArchiveInfo._to_dict{s�����+�+�+�+rr() rrrrJrrCrArKrrrFrIrrrr r ls������� �D�#����s�m�� ����� �.�8�D��c��N�3�.���8O�.�.�.��[�.� ,�$�s�C�x�.�,�,�,�,�,�,rr c��eZdZdZ d deddfd�Zedeee e fdedfd���Z dee e ffd �Z dS) r �dir_infoF�editablerNc��||_dSr(�rU)r@rUs rrAzDirInfo.__init__�s��!�� � � rrc�N�|�dS|t|tdd������S)NrUF)rrW)r#�boolrDs rrFzDirInfo._from_dict�s0�� �9��4��s�M�!�T�:�u�M�M�M�N�N�N�Nrc�0�t|jpd���S)NrW)r6rUrHs rrIzDirInfo._to_dict�s���T�]�%:�d�;�;�;�;r)F) rrrrJrYrArKrrrCrrFrIrrrr r s������� �D��!�!��!� �!�!�!�!� �O�8�D��c��N�3�O���8K�O�O�O��[�O� <�$�s�C�x�.�<�<�<�<�<�r�s����� � � � � � � � �����F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F� � � �� �G�C�L�L��,�� �R�Z�I� J� J� � � � � � �y� � � � QU� � � �C��H�~� �&*�1�g� �47� �BJ�1�+� � �a�[� � � � �"QU��� �C��H�~��&*�1�g��47��BJ�1�+������� �8�H�Z�$8�9� �j� � � � �>�3�>�4��S��>�>�>�>�>� $ �$ �$ �$ �$ �$ �$ �$ �N,�,�,�,�,�,�,�,�&<�<�<�<�<�<�<�<�& ��g�w�.� /��GE�GE�GE�GE�GE�GE�GE�GE�GE�GEr