}pϻvzNddlmZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZmZmZmZmZejeZejdZejdZejdZejd ZGd d eZejedS) ) annotationsN) HiddenText display_pathis_console_interactiveis_installable_dirsplit_auth_from_netloc) CommandArgs make_command)AuthInfoRemoteNotFoundError RevOptionsVersionControlvcsz url="([^"]+)"zcommitted-rev="(\d+)"z\s*revision="(\d+)"z(.*)cJeZdZdZdZdZdZed4d Ze d5d Z ed6dZ ed7fd Z ed8fd Z e d9dZed6dZed:dZed;d!Zdd(Zd>d)Zd?d*Zd@d0Z dAd@d2Z dAd@d3ZxZS)B Subversionsvnz.svncheckout)zsvn+sshzsvn+httpz svn+httpszsvn+svnzsvn+file remote_urlstrreturnboolcdS)NT)clsrs n/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pip/_internal/vcs/subversion.pyshould_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix%strev list[str]c d|gS)Nz-rr)rs rget_base_rev_argszSubversion.get_base_rev_args)s c{rlocationcd}tj|D]\}}}|j|vrg|dd<||jtj||jd}tj|sw||\}}||kr |J|dz}n|r||sg|dd<t||}t|S)zR Return the maximum revision for all files under a given location rNentries/) oswalkdirnameremovepathjoinexists_get_svn_url_rev startswithmaxr) rr"revisionbasedirs_ entries_fndirurllocalrevs r get_revisionzSubversion.get_revision-s WX.. / /MD${$&&QQQ KK $ $ $dCKCCJ7>>*-- "33D99 FHx)))| 6#4#4T#:#: QQQ8X..HH8}}rnetlocscheme)tuple[str, tuple[str | None, str | None]]cr|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)superget_netloc_and_authr)rr8r9 __class__s rr>zSubversion.get_netloc_and_authJs8 U??77..vv>> >%f---rurl tuple[str, str | None, AuthInfo]ct|\}}}|drd|z}|||fS)Nzssh://zsvn+)r=get_url_rev_and_authr.)rr@r user_passr?s rrCzSubversion.get_url_rev_and_authYsM$gg::3??S) >>( # # 3,CC""rusername str | NonepasswordHiddenText | 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 2J  3 <2 2Jrc|}t|sX|}tj|}||kr"td|t t|X||\}}|t |S)NzMCould not find Python project for directory %s (tried all parent directories))rr&r*r(loggerwarningr r-)rr" orig_location last_locationr@_revs rget_remote_urlzSubversion.get_remote_urlks! $X.. *$Mwx00H=((*! *)%X.. *((22 T ;% % rtuple[str | None, int]c@ddlm}tj||jd}tj|rz/Subversion._get_svn_url_rev..s5FFF!#a&&1**1*C!II***rz.s(HHHC OOHHHrinfoz--xmlFT show_stdout stdout_onlycRg|]$}t|d%Srdrergs rraz/Subversion._get_svn_url_rev..s(TTTAAGGAJJTTTr)pip._internal.exceptionsrUr&r*r+r(r,openreadr.listmapr splitlinessplit_svn_xml_url_research ValueErrorrf _svn_rev_refinditer run_command_svn_info_xml_url_re_svn_info_xml_rev_rer/) rr"rU entries_pathfdatar@r$revsmatchxmlrs rr-zSubversion._get_svn_url_revs{>>>>>>w||Hck9EE 7>>, ' ' l## qvvxx               D ??+ , , %3s~tzz*/E/EFFGGG 1 !*Q-CFFwFFF!LDD __W % % %#**400E D !B$!B!BCCC++a..CHH[-A-A$-G-GHHHA3NDD %ooWh/ % $& -33C88(((kk!nnTT1E1N1Ns1S1STTT$ % % % "T %  d))CCCCxs%A<<BBA2G99 HHdestnamecdS)z&Always assume the versions don't matchFr)rrrs ris_commit_id_equalzSubversion.is_commit_id_equals urNuse_interactive bool | NoneNonec|t}||_d|_tdSN)rr _vcs_versionr=__init__)selfrr?s rrzSubversion.__init__sB  "466O.59 rtuple[int, ...]cd}|dgdd}||sdS|t|dd}|d dd } 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 --versionFTrjrNr-.) rzr.r]rt partitiontuplerrr^rw)rversion_prefixversion version_listparsed_versions rcall_vcs_versionzSubversion.call_vcs_versions)""K=eQU"VV!!.11 2#n--//06688;((--a066s;;  "3sL#9#9::NN   22 s"B44 CCcX|j|jS|}||_|S)aReturn 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. )rr)r vcs_versions rget_vcs_versionzSubversion.get_vcs_versions7   ($ $++-- 'rcT|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)rbz--force-interactive)rr)r svn_versions rget_remote_call_optionsz"Subversion.get_remote_call_optionssF# )(( (**,,  & )* * rr rev_optionsr verbosityr^c6|}td||t||dkrdg}ng}t dg|||||R}||dS)NzChecking out %s%s to %srz--quietr) to_displayrMrirr rto_argsrz)rrr@rr rev_displayflagscmd_argss r fetch_newzSubversion.fetch_news",,..  %         >>KEEE     ( ( * *     ! !         """""rrctd||||}||dS)Nswitchr rrrzrrr@rrrs rrzSubversion.switch/sV   ( ( * *    ! !      """""rctd|||}||dS)Nupdaterrs rrzSubversion.update?sS   ( ( * *    ! !     """""r)rrrr)rrrr)r"rrr)r8rr9rrr:)r@rrrA)rErFrGrHrr )r"rrrS)rrrrFrrr)rrrr)rr)rr ) rrr@rrr rr^rr)r)__name__ __module__ __qualname__rr( repo_nameschemes classmethodr staticmethodr!r7r>rCrKrRr-rrrrrrrr __classcell__)r?s@rrrs DGIIG[\[8 . . . . .[ .#####[#\[.///[/b[       8(>####: #####* # # # # # # # # #rr) __future__rloggingr&repip._internal.utils.miscrrrrrpip._internal.utils.subprocessr r pip._internal.vcs.versioncontrolr r r rr getLoggerrrMcompilerurxr|r{rregisterrrrrs"""""" EDDDDDDD  8 $ $"*_--bj122 !rz"899!rz"455m#m#m#m#m#m#m#m#`   Zr