HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-311.pyc
�

�mi.��N�ddlmZddlZddlZddlZddlmZmZmZm	Z	m
Z
ddlmZm
Z
ddlmZmZmZmZmZeje��Zejd��Zejd��Zejd��Zejd	��ZGd
�de��Zeje��dS)�)�annotationsN)�
HiddenText�display_path�is_console_interactive�is_installable_dir�split_auth_from_netloc)�CommandArgs�make_command)�AuthInfo�RemoteNotFoundError�
RevOptions�VersionControl�vcsz
url="([^"]+)"zcommitted-rev="(\d+)"z\s*revision="(\d+)"z<url>(.*)</url>c�J��eZdZdZdZdZdZed4d	���Ze	d5d���Z
ed6d���Zed7�fd���Zed8�fd���Z
e	d9d���Zed6d���Zed:d���Zed;d!���Zd<d=�fd&�
Zd>d(�Zd>d)�Zd?d*�Zd@d0�Z	dAd@d2�Z	dAd@d3�Z�xZS)B�
Subversion�svnz.svn�checkout)zsvn+sshzsvn+httpz	svn+httpszsvn+svnzsvn+file�
remote_url�str�return�boolc��dS)NT�)�clsrs  �>D:\Python311\Lib\site-packages\pip/_internal/vcs/subversion.py�should_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix%s���t��rev�	list[str]c�
�d|gS)Nz-rr)rs r�get_base_rev_argszSubversion.get_base_rev_args)s���c�{�r�locationc���d}tj|��D]�\}}}|j|vrg|dd�<�|�|j��tj�||jd��}tj�|��s�w|�|��\}}||kr
|�J�|dz}n|r|�|��sg|dd�<��t||��}��t|��S)zR
        Return the maximum revision for all files under a given location
        rN�entries�/)�os�walk�dirname�remove�path�join�exists�_get_svn_url_rev�
startswith�maxr)	rr"�revision�base�dirs�_�
entries_fn�dirurl�localrevs	         r�get_revisionzSubversion.get_revision-s�����W�X�.�.�	/�	/�M�D�$���{�$�&�
���Q�Q�Q����K�K���$�$�$�����d�C�K��C�C�J��7�>�>�*�-�-�
��"�3�3�D�9�9��F�H��x��
��)�)�)���|����
�6�#4�#4�T�#:�#:�
���Q�Q�Q����8�X�.�.�H�H��8�}�}�r�netloc�scheme�)tuple[str, tuple[str | None, str | None]]c�r��|dkr"t���||��St|��S)z�
        This override allows the auth information to be passed to svn via the
        --username and --password options instead of via the URL.
        �ssh)�super�get_netloc_and_authr)rr8r9�	__class__s   �rr>zSubversion.get_netloc_and_authJs;����U�?�	?��7�7�.�.�v�v�>�>�>�%�f�-�-�-r�url� tuple[str, str | None, AuthInfo]c���t���|��\}}}|�d��rd|z}|||fS)Nzssh://zsvn+)r=�get_url_rev_and_authr.)rr@r�	user_passr?s    �rrCzSubversion.get_url_rev_and_authYsM���$�g�g�:�:�3�?�?���S�)��>�>�(�#�#�	��3�,�C��C��"�"r�username�
str | None�password�HiddenText | Noner	c�.�g}|r|d|gz
}|r|d|gz
}|S)Nz
--usernamez
--passwordr)rErG�
extra_argss   r�
make_rev_argszSubversion.make_rev_argsas;��"$�
��	3��<��2�2�J��	3��<��2�2�J��rc��|}t|��sX|}tj�|��}||kr"t�d|��t�t|���X|�|��\}}|�t�|S)NzMCould not find Python project for directory %s (tried all parent directories))rr&r*r(�logger�warningrr-)rr"�
orig_location�
last_locationr@�_revs      r�get_remote_urlzSubversion.get_remote_urlks���!�
�$�X�.�.�	*�$�M��w���x�0�0�H��=�(�
*����*�!����
*�)�%�X�.�.�	*��(�(��2�2�	��T��	&�%�%��
r�tuple[str | None, int]c�@�ddlm}tj�||jd��}tj�|��r<t|��5}|���}ddd��n#1swxYwYnd}d}|�	d��rctttj
|�d������}|dd=|dd}d�|D��dgz}�n|�	d	��rlt�|��}	|	st#d
|�����|	�d��}d�t&�|��D��dgz}n�	|�d
d|gdd���}
t,�|
��}	|	�J�|	�d��}d�t.�|
��D��}n#|$rdg}}YnwxYw|rt1|��}nd}||fS)Nr)�InstallationErrorr$�)�8�9�10z

�c�n�g|]2}t|��dk�|d�t|d����3S)�	)�len�int)�.0�ds  r�
<listcomp>z/Subversion._get_svn_url_rev.<locals>.<listcomp>�s:��F�F�F�!�#�a�&�&�1�*�F��1��F�C��!��I�I�F�F�Frz<?xmlzBadly formatted data: �c�R�g|]$}t|�d������%S�rb�r^�group�r_�ms  rraz/Subversion._get_svn_url_rev.<locals>.<listcomp>�s(��H�H�H��C�����
�
�O�O�H�H�Hr�infoz--xmlFT��show_stdout�stdout_onlyc�R�g|]$}t|�d������%Srdrergs  rraz/Subversion._get_svn_url_rev.<locals>.<listcomp>�s(��T�T�T�A��A�G�G�A�J�J���T�T�Tr)�pip._internal.exceptionsrUr&r*r+r(r,�open�readr.�list�mapr�
splitlines�split�_svn_xml_url_re�search�
ValueErrorrf�_svn_rev_re�finditer�run_command�_svn_info_xml_url_re�_svn_info_xml_rev_rer/)rr"rU�entries_path�f�datar@r$�revs�match�xmlrs            rr-zSubversion._get_svn_url_rev�s{��>�>�>�>�>�>��w�|�|�H�c�k�9�E�E��
�7�>�>�,�'�'�	��l�#�#�
 �q��v�v�x�x��
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 ���D����?�?�+�,�,�	%��3�s�~�t�z�z�*�/E�/E�F�F�G�G�G���
�1�
��!�*�Q�-�C�F�F�w�F�F�F�!��L�D�D�
�_�_�W�
%�
%�	%�#�*�*�4�0�0�E��
D� �!B�$�!B�!B�C�C�C��+�+�a�.�.�C�H�H�[�-A�-A�$�-G�-G�H�H�H�A�3�N�D�D�
%��o�o��W�h�/� %� $�&����
-�3�3�C�8�8���(�(�(��k�k�!�n�n��T�T�1E�1N�1N�s�1S�1S�T�T�T����$�
%�
%�
%� �"�T����
%�����	��d�)�)�C�C��C��C�x�s%�A<�<B�B�A2G9�9	H�H�dest�namec��dS)z&Always assume the versions don't matchFr)rr�r�s   r�is_commit_id_equalzSubversion.is_commit_id_equal�s	���urN�use_interactive�bool | None�Nonec���|�t��}||_d|_t�����dS�N)rr��_vcs_versionr=�__init__)�selfr�r?s  �rr�zSubversion.__init__�sD����	7�4�6�6�O�.���59���
���������r�tuple[int, ...]c��d}|�dgdd���}|�|��sdS|t|��d����d}|�d	��d�d
��}	tt
t|����}n#t$rYdSwxYw|S)aQuery the version of the currently installed Subversion client.

        :return: A tuple containing the parts of the version information or
            ``()`` if the version returned from ``svn`` could not be parsed.
        :raises: BadCommand: If ``svn`` is not installed.
        z
svn, version z	--versionFTrjrNr�-�.)	rzr.r]rt�	partition�tuplerrr^rw)r��version_prefix�version�version_list�parsed_versions     r�call_vcs_versionzSubversion.call_vcs_version�s���)���"�"�K�=�e�QU�"�V�V���!�!�.�1�1�	��2��#�n�-�-�/�/�0�6�6�8�8��;���(�(��-�-�a�0�6�6�s�;�;��	�"�3�s�L�#9�#9�:�:�N�N���	�	�	��2�2�	�����s�"B4�4
C�Cc�X�|j�|jS|���}||_|S)a�Return the version of the currently installed Subversion client.

        If the version of the Subversion client has already been queried,
        a cached value will be used.

        :return: A tuple containing the parts of the version information or
            ``()`` if the version returned from ``svn`` could not be parsed.
        :raises: BadCommand: If ``svn`` is not installed.
        )r�r�)r��vcs_versions  r�get_vcs_versionzSubversion.get_vcs_version�s9����	%��$�$��+�+�-�-��'����rc�T�|jsdgS|���}|dkrdgSgS)aCReturn options to be used on calls to Subversion that contact the server.

        These options are applicable for the following ``svn`` subcommands used
        in this class.

            - checkout
            - switch
            - update

        :return: A list of command line arguments to pass to ``svn``.
        z--non-interactive)rb�z--force-interactive)r�r�)r��svn_versions  r�get_remote_call_optionsz"Subversion.get_remote_call_options�sH���#�	)�(�(�(��*�*�,�,���&� �	+�)�*�*��	rr�rev_optionsr
�	verbosityr^c�6�|���}t�d||t|����|dkrdg}ng}t	dg|�|����|����|�|�R�}|�|��dS)NzChecking out %s%s to %srz--quietr)�
to_displayrMrirr
r��to_argsrz)r�r�r@r�r��rev_display�flags�cmd_argss        r�	fetch_newzSubversion.fetch_news���"�,�,�.�.�����%�������		
�	
�	
���>�	��K�E�E��E���
�
�
�
�(�(�*�*�
�
���!�!�	
�

�
�
�

�
�
��	
����"�"�"�"�"rrc��td|���|���||��}|�|��dS)N�switch�r
r�r�rz�r�r�r@r�r�r�s      rr�zSubversion.switch/sV�� ���(�(�*�*����!�!���
�
��	
����"�"�"�"�"rc��td|���|���|��}|�|��dS)N�updater�r�s      rr�zSubversion.update?sS�� ���(�(�*�*����!�!��	
�
��	
����"�"�"�"�"r)rrrr)rrrr)r"rrr)r8rr9rrr:)r@rrrA)rErFrGrHrr	)r"rrrS)r�rr�rFrrr�)r�r�rr�)rr�)rr	)
r�rr@rr�r
r�r^rr�)r)�__name__�
__module__�__qualname__r�r(�	repo_name�schemes�classmethodr�staticmethodr!r7r>rCrKrRr-r�r�r�r�r�r�r�r��
__classcell__)r?s@rrrs��������D��G��I�I�G������[�������\�������[��8�.�.�.�.�.��[�.��#�#�#�#�#��[�#������\�������[��.�/�/�/��[�/�b�����[�������������8����(����>#�#�#�#�:�#�#�#�#�#�*�
#�
#�
#�
#�
#�
#�
#�
#�
#rr)�
__future__r�loggingr&�re�pip._internal.utils.miscrrrrr�pip._internal.utils.subprocessr	r
� pip._internal.vcs.versioncontrolrrr
rr�	getLoggerr�rM�compilerurxr|r{r�registerrrr�<module>r�s���"�"�"�"�"�"�����	�	�	�	�	�	�	�	���������������E�D�D�D�D�D�D�D���������������
��	�8�	$�	$���"�*�_�-�-���b�j�1�2�2��!�r�z�"8�9�9��!�r�z�"4�5�5��m#�m#�m#�m#�m#��m#�m#�m#�`	
���Z�����r