� ��^i� � ��ddlmZddlmZmZmZmZddlmZddl m Z ddl m Z dede de fd �Zd e defd �Z dded ee dedefd�Zd S)�)�Optional)� ArchiveInfo� DirectUrl�DirInfo�VcsInfo)�Link)� path_to_url)�vcs� direct_url�name�returnc�F�|���|dz}g}t|jt��r4|d�|jj|j|jj��z }nvt|jt��r6||jz }|jj r|� |jj ��n&t|jt��sJ�||jz }|j r|� d|j z��|r|dd� |��zz }|S)z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}z subdirectory=�#�&)�validate� isinstance�infor�formatr �url� commit_idr�hash�appendr� subdirectory�join)r r � requirement� fragmentss ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/utils/direct_url_helpers.py�%direct_url_as_pep440_direct_referencer s%����������,�K��I��*�/�7�+�+� &��z�(�(� �O� �����1J� � � � � � �J�O�[� 1� 1�&��z�~�%� � �?� � 3� � � �Z�_�1� 2� 2� 2���*�/�7�3�3�3�3�3��z�~�%� ���D�����:�+B�B�C�C�C��1��s�S�X�X�i�0�0�0�0� � ��� source_dirc�Z�tt|��td������S)NT)�editable)rr)rr r)r s r�direct_url_for_editabler# s2�� � � � #� #� �d� #� #� #� � � �rNF�link�link_is_in_wheel_cachec��|jr�tj|j��}|sJ�|�|j��\}}}|r|sJ�|}n|sJ�|�|��}t|t|j ||���|j ���S|� ��r(t|jt��|j ���Sd}|j } | r | �d|j��}t|jt|���|j ���S)N)r r�requested_revision)rrr�=)r)�is_vcsr �get_backend_for_scheme�scheme�get_url_rev_and_auth�url_without_fragment� get_revisionrrr �subdirectory_fragment�is_existing_dirr� hash_namerr) r$r r%� vcs_backendrr'�_rrr1s r�direct_url_from_linkr4'si�� �{�- ��0���=�=� ����{�%0�%E�%E� � %�& �& �"�� �� "� =� &� %� %�%�*�I�I� � � �:�#�0�0��<�<�I�����$�#�#5���� �3� � � � � � � � � � ���)�����3� � � � � ���N� � � .��-�-�$�)�-�-�D���)��$�'�'�'��3� � � � r)NF)�typingr�pip._internal.models.direct_urlrrrr�pip._internal.models.linkr�pip._internal.utils.urlsr �pip._internal.vcsr �strrr#�boolr4�rr�r=s ��������T�T�T�T�T�T�T�T�T�T�T�T�*�*�*�*�*�*�0�0�0�0�0�0�!�!�!�!�!�!��i��s��s�����.��� �����RW�0 �0 � �0 �$�S�M�0 �JN�0 ��0 �0 �0 �0 �0 �0 r