7i-fddlZddlZddlZddlmZmZmZddlmZm Z m Z m Z m Z ddl mZmZddlmZmZmZmZmZej,eZej2dZej2dZej2dZej2d ZGd d eZej>ey) N)ListOptionalTuple) HiddenText display_pathis_console_interactiveis_installable_dirsplit_auth_from_netloc) CommandArgs make_command)AuthInfoRemoteNotFoundError RevOptionsVersionControlvcsz url="([^"]+)"zcommitted-rev="(\d+)"z\s*revision="(\d+)"z(.*)c eZdZdZdZdZdZedede fdZ e dede efd Z ed edefd Zed ed edeeeeeeeffffd Zededeeeeefffd Ze deedeedefdZed edefdZed edeeeeffdZededeede fdZd%dee ddffd ZdeedffdZdeedffdZdefdZdeded ed!eddf d"Z deded eddfd#Z!deded eddfd$Z"xZ#S)& Subversionsvnz.svncheckout)zsvn+sshzsvn+httpz svn+httpszsvn+svnzsvn+file remote_urlreturncy)NT)clsrs e/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.pyshould_add_vcs_url_prefixz$Subversion.should_add_vcs_url_prefix$srevc d|gS)Nz-rr)rs rget_base_rev_argszSubversion.get_base_rev_args(s c{rlocationcd}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) rr!revisionbasedirs_ entries_fndirurllocalrevs r get_revisionzSubversion.get_revision,s WWX. /MD${{$&Q KK $dCKKCJ77>>*-"33D9 FHx)))|6#4#4T#:Q8X.H% /&8}rnetlocschemecD|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 )rr8r9 __class__s rr=zSubversion.get_netloc_and_authIs+ U?7.vv> >%f--rurlc`t||\}}}|jdrd|z}|||fS)Nzssh://zsvn+)r<get_url_rev_and_authr-)rr?r user_passr>s rrAzSubversion.get_url_rev_and_authXs=$g:3?S) >>( #3,CC""rusernamepasswordc.g}|r|d|gz }|r|d|gz }|S)Nz --usernamez --passwordr)rCrD extra_argss r make_rev_argszSubversion.make_rev_args`s3#%  <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))r r%r)r'loggerwarningrr,)rr! orig_location last_locationr?_revs rget_remote_urlzSubversion.get_remote_urlls~! $X.$Mwwx0H=(*! *)%X.((2 T ;% % rcddlm}tjj ||j d}tjj |r%t|5}|j}dddnd}d}jds"|jds|jdrwtttj|jd}|dd=|dd }|Dcgc]%}t|d kDs|d st!|d 'c}dgz} n|jd rvt"j%|} | st'd || j)d }t*j-|D cgc]} t!| j)d c} dgz} n| |j/dd|gdd} t0j%| } | J| j)d }t2j-| D cgc]} t!| j)d } } | rt5| } || fSd} || fS#1swYxYwcc}wcc} wcc} w#|$rdg} }Y>wxYw)Nr)InstallationErrorr#8910z  zww||Hckk9E 77>>, 'l# qvvx  D ??3 4??3#74??4;P3s~~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 %sIH>1I I  I !I,AI!I%I>II I&%I&destnamecy)z&Always assume the versions don't matchFr)rrvrws ris_commit_id_equalzSubversion.is_commit_id_equalsrNuse_interactivecV| t}||_d|_t|yN)rrz _vcs_versionr<__init__)selfrzr>s rr~zSubversion.__init__s.  "46O.8< r.c.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 --versionFTrYrNr-.) rkr-rcrb partitiontupler`rdrg)rversion_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. )r}r)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)rWz--force-interactive)rzr)r svn_versions rget_remote_call_optionsz"Subversion.get_remote_call_optionss>##(( (**,  & )* * r rev_options verbosityc|j}tjd||t||dkrd}nd}t d||j |j ||}|j|y)NzChecking out %s%s to %srz--quietrQr) to_displayrIrXrr rto_argsrk)rrvr?rr rev_displayflagcmd_argss r fetch_newzSubversion.fetch_news",,.  %      >DD    ( ( *    !     "rc|td|j|j||}|j|y)Nswitchr rrrkrrvr?rrs rrzSubversion.switch0s=   ( ( *    !     "rcztd|j|j|}|j|y)Nupdaterrs rrzSubversion.update:s:   ( ( *    !    "rr|)$__name__ __module__ __qualname__rwr' repo_nameschemes classmethodr/boolr staticmethodrr r7rrr=r rArr rGrNrdr,ryr~rrrrrrr __classcell__)r>s@rrrsh DGIIG34stCyCC8 . ."% . sE(3-#677 8 . .#s#uS(3-5Q/R## 3- +3J+?    cc.//hsmS6H0I//bc#4  $ %S/8sCx(>##(#7A#NQ# #0#3#Z#j#T##3#Z#j#T#rr) loggingr%retypingrrrpip._internal.utils.miscrrrr r pip._internal.utils.subprocessr r pip._internal.vcs.versioncontrolr rrrr getLoggerrrIcompilererirmrlrregisterrrrrs ((E   8 $"**_-bjj12 !rzz"89!rzz"45c#c#L   Zr