� ��^iL-��V�ddlZddlZddlZddlmZmZmZddlmZm Z m Z m Z m Z ddl mZmZddlmZmZmZmZmZeje��Zejd��Zejd��Zejd��Zejd ��ZGd �d e��Zeje��dS) �N)�List�Optional�Tuple)� 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(.*)c ���eZdZdZdZdZdZedede fd���Z e dede efd ���Z ed edefd ���Zed ed edeeeeeeefff�fd� ��Zededeeeeeff�fd� ��Ze deedeedefd���Zed edefd���Zed edeeeeffd���Zededeede fd���Zd$de ddf�fd� Zdeedffd�Zdeedffd�Zdefd�Zdeded eddfd!�Z deded eddfd"�Z!deded eddfd#�Z"�xZ#S)%� Subversion�svnz.svn�checkout)zsvn+sshzsvn+httpz svn+httpszsvn+svnzsvn+file� remote_url�returnc��dS)NT�)�clsrs ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/vcs/subversion.py�should_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix$s���t��revc� �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�max�str) 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�schemec�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_authIs8��� �U�?�?��7�7�.�.�v�v�>�>� >�%�f�-�-�-r�urlc���t���|��\}}}|�d��rd|z}|||fS)Nzssh://zsvn+)r<�get_url_rev_and_authr-)rr?r� user_passr>s �rrAzSubversion.get_url_rev_and_authXsM���$�g�g�:�:�3�?�?���S�)� �>�>�(� #� #� ��3�,�C��C��"�"r�username�passwordc�.�g}|r|d|gz }|r|d|gz }|S)Nz --usernamez --passwordr)rCrD� extra_argss r� make_rev_argszSubversion.make_rev_args`s=��#%� � � 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))r r%r)r'�logger�warningrr,)rr!� orig_location� last_locationr?�_revs r�get_remote_urlzSubversion.get_remote_urlls���!� �$�X�.�.� *�$�M��w���x�0�0�H��=�(�(����*�!���� *�)�%�X�.�.� *��(�(��2�2� ��T� �;�%� %�� rc��ddlm}tj�||jd��}tj�|��rz/Subversion._get_svn_url_rev..�s5��F�F�F�!�#�a�&�&�1�*�*��1��*�C��!��I�I�*�*�*rz.�s(��H�H�H��C����� � �O�O�H�H�Hr�infoz--xmlFT�� show_stdout� stdout_onlyc�R�g|]$}t|�d������%Sr_r`rbs rr\z/Subversion._get_svn_url_rev..�s(��T�T�T�A��A�G�G�A�J�J���T�T�Tr)�pip._internal.exceptionsrPr%r)r*r'r+�open�readr-�list�mapr/� splitlines�split�_svn_xml_url_re�search� ValueErrorra� _svn_rev_re�finditer� run_command�_svn_info_xml_url_re�_svn_info_xml_rev_rer.) rr!rP� 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� � � %�4�?�?�3�#7�#7� %�4�?�?�4�;P�;P� %��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�0A2H#�# H/�.H/�dest�namec��dS)z&Always assume the versions don't matchFr)rr~rs r�is_commit_id_equalzSubversion.is_commit_id_equal�s ���urN�use_interactivec���|�t��}||_d|_t�����dS�N)rr�� _vcs_versionr<�__init__)�selfr�r>s �rr�zSubversion.__init__�sB��� � "�4�6�6�O�.���8<��� ���������r.c��d}|�dgdd���}|�|��sdS|t|��d����d}|�d ��d�d ��} t t 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 --versionFTrerNr�-�.) rur-rXro� partition�tuplermrYrr)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�s7�� � � (��$� $��+�+�-�-� �'����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)r]�z--force-interactive)r�r�)r�� svn_versions r�get_remote_call_optionsz"Subversion.get_remote_call_options�sF���#� )�(�(� (��*�*�,�,� � �&� � �)�*� *�� r� rev_optionsc��|���}t�d||t|����t dd|���|���||��}|�|��dS)NzChecking out %s%s to %srz-q)� to_displayrIrdrr r��to_argsru)r�r~r?r�� rev_display�cmd_argss r� fetch_newzSubversion.fetch_news���!�,�,�.�.� �� � � %� � � �� � �  � � �  � � � � (� (� *� *� � � � !� !� � �  � �� ����"�"�"�"�"rc��td|���|���||��}|�|��dS)N�switch�r r�r�ru�r�r~r?r�r�s rr�zSubversion.switch*sT��� � � (� (� *� *� � � � !� !� � �  � �� ����"�"�"�"�"rc��td|���|���|��}|�|��dS)N�updater�r�s rr�zSubversion.update4sQ��� � � (� (� *� *� � � � !� !� �  � �� ����"�"�"�"�"rr�)$�__name__� __module__� __qualname__rr'� repo_name�schemes� classmethodr/�boolr� staticmethodrr r7rrr=r rArr rGrNrYr,r�r�r�r�r�rr�r�r�� __classcell__)r>s@rrrsm������� �D��G��I�I�G���3��4�����[����s��t�C�y�����\����C��C�����[��8� .�� .�"%� .� �s�E�(�3�-��#��6�7�7� 8� .� .� .� .� .��[� .��#�s�#�u�S�(�3�-��5Q�/R�#�#�#�#�#��[�#�� ��3�-� �+3�J�+?� � � � � ��\� ���c��c�����[��.�/��/��h�s�m�S�6H�0I�/�/�/��[�/�b��c���#���4�����[�� � �� �� � � � � � ��%��S��/�����8��s�C�x������(������>#�c�#� �#��#�PT�#�#�#�#�$#�3�#�Z�#�j�#�T�#�#�#�#�#�3�#�Z�#�j�#�T�#�#�#�#�#�#�#�#rr) �loggingr%�re�typingrrr�pip._internal.utils.miscrrrr r �pip._internal.utils.subprocessr r � pip._internal.vcs.versioncontrolr rrrr� getLoggerr�rI�compilerprsrwrvr�registerrrr�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��]#�]#�]#�]#�]#��]#�]#�]#�@  �� �Z�����r