I i .^ddlmZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZmZmZmZmZej(eZej.dZej.dZej.dZej.d ZGd d eZej:ey) ) 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(.*)cXeZdZdZdZdZdZeddZe ddZ eddZ e dfd Z edfd Z e dd Zedd Zedd Zedd Zddfd ZddZddZd dZ d!dZ d" d!dZ d" d!dZxZS)# Subversionsvnz.svncheckout)zsvn+sshzsvn+httpz svn+httpszsvn+svnzsvn+filecy)NT)cls remote_urls b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.pyshould_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix%sc d|gS)Nz-rr)revs rget_base_rev_argszSubversion.get_base_rev_args)s c{rcd}tj|D]\}}}|j|vrg|dd|j|jtjj ||jd}tjj |s|j|\}}||k(r |J|dz}n|r|j|sg|ddt||}t|S)zR Return the maximum revision for all files under a given location rNentries/) oswalkdirnameremovepathjoinexists_get_svn_url_rev startswithmaxstr) rlocationrevisionbasedirs_ entries_fndirurllocalrevs r get_revisionzSubversion.get_revision-s WWX. /MD${{$&Q KK $dCKKCJ77>>*-"33D9 FHx)))|6#4#4T#:Q8X.H% /&8}rcD|dk(rt|||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)rnetlocscheme __class__s rr8zSubversion.get_netloc_and_authJs+ U?7.vv> >%f--rc`t||\}}}|jdrd|z}|||fS)Nzssh://zsvn+)r7get_url_rev_and_authr))rurlr user_passr;s rr=zSubversion.get_url_rev_and_authYs=$g:3?S) >>( #3,CC""rc.g}|r|d|gz }|r|d|gz }|S)Nz --usernamez --passwordr)usernamepassword extra_argss r make_rev_argszSubversion.make_rev_argsas1"$  <2 2J  <2 2Jrc|}t|sN|}tjj|}||k(rtj d|t t|sN|j|\}}|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.$Mwwx0H=(*! *)%X.((2 T ;% % rcddlm}tjj ||j d}tjj |r%t|5}|j}dddnd}d}jdrwtttj|jd}|dd=|dd}|Dcgc]%}t|dkDs|dst!|d'c}dgz} n|jd rvt"j%|} | st'd || j)d }t*j-|D cgc]} t!| j)d c} dgz} n| |j/d d |gdd} t0j%| } | J| j)d }t2j-| D cgc]} t!| j)d } } | rt5| } || fSd} || fS#1swYxYwcc}wcc} wcc} w#|$rdg} }Y>wxYw)Nr)InstallationErrorr)8910z  zrdrevsmatchmxmlrs rr(zSubversion._get_svn_url_revs>ww||Hckk9E 77>>, 'l# qvvx  D ??+ ,3s~~tzz*/EFGG 1 !*Q-C'.F!#a&1*1C!IF!LD __W %#**40E #9$!BCC++a.C-8-A-A$-GHC OHA3ND %ooWh/ % $& -33C8(((kk!n1E1N1Ns1STAAGGAJTT d)CCxCCxU  G I"U$ % "T %sIHH)#H))H) !H. AH8"!H3H8H&3H88 IIcy)z&Always assume the versions don't matchFr)rdestnames ris_commit_id_equalzSubversion.is_commit_id_equalsrcV| t}||_d|_t|yN)ruse_interactive _vcs_versionr7__init__)selfryr;s rr{zSubversion.__init__s.  "46O.59 rc.d}|jdgdd}|j|sy|t|djd}|j d djd } t t t|}|S#t$rYywxYw) 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 --versionFTrVrNr-.) rhr)r`r_ partitiontupler]rard)r|version_prefixversion version_listparsed_versions rcall_vcs_versionzSubversion.call_vcs_versions)""K=eQU"V!!.1#n-/0668;((-a066s;  "3sL#9:N  s-B BBcd|j |jS|j}||_|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. )rzr)r| vcs_versions rget_vcs_versionzSubversion.get_vcs_versions:    ($$ $++- 'rcT|jsdgS|j}|dk\rdgSgS)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)rTz--force-interactive)ryr)r| svn_versions rget_remote_call_optionsz"Subversion.get_remote_call_optionss>##(( (**,  & )* * rc|j}tjd||t||dkrdg}ng}t dg||j |j ||}|j|y)NzChecking out %s%s to %srz--quietr) to_displayrFrUrr rto_argsrh)r|rtr> rev_options verbosity rev_displayflagscmd_argss r fetch_newzSubversion.fetch_news",,.  %      >KEE     ( ( *     !       "rc|td|j|j||}|j|y)Nswitchr rrrhr|rtr>rrrs rrzSubversion.switch/s?   ( ( *    !     "rcztd|j|j|}|j|y)Nupdaterrs rrzSubversion.update?s<   ( ( *    !    "r)rr+returnbool)rr+rz list[str])r,r+rr+)r9r+r:r+rz)tuple[str, tuple[str | None, str | None]])r>r+rz tuple[str, str | None, AuthInfo])rA str | NonerBzHiddenText | Nonerr )r,r+rztuple[str | None, int])rtr+rurrrrx)ryz bool | NonerNone)rztuple[int, ...])rr ) rtr+r>rrr rrarr)r)__name__ __module__ __qualname__rur# repo_nameschemes classmethodr staticmethodrr4r8r=rDrKr(rvr{rrrrrr __classcell__)r;s@rrrs DGIIG8 . ."% . 2 . .##.//b 8(>##(#7A#NQ# #: ### #  #  #* # # # #  #  #rr) __future__rloggingr!repip._internal.utils.miscrrrrrpip._internal.utils.subprocessr r pip._internal.vcs.versioncontrolr r r rr getLoggerrrFcompilerbrfrjrirregisterrrrrs" E   8 $"**_-bjj12 !rzz"89!rzz"45m#m#`   Zr