U ÀÒ.e0ã@süddlmZddlZddlZddlZddlmZddlmZm Z m Z m Z ddl m Z ddlmZddlmZmZe d¡Ze d ¡Ze d ¡Ze d ¡ZerÔdd lmZmZdd l mZddlmZddlmZmZe e ¡Z!Gdd„deƒZ"e #e"¡dS)é)Úabsolute_importN)Ú indent_log)Ú display_pathÚis_console_interactiveÚrmtreeÚsplit_auth_from_netloc)Ú make_command)ÚMYPY_CHECK_RUNNING)ÚVersionControlÚvcsz url="([^"]+)"zcommitted-rev="(\d+)"z\s*revision="(\d+)"z(.*))ÚOptionalÚTuple)Ú CommandArgs)Ú HiddenText)ÚAuthInfoÚ RevOptionscsÚeZdZdZdZdZdZedd„ƒZe dd„ƒZ ed d „ƒZ e‡fd d „ƒZ e‡fd d„ƒZ e dd„ƒZedd„ƒZedd„ƒZedd„ƒZd(‡fdd„ Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Z‡ZS))Ú SubversionÚsvnz.svnÚcheckout)rzsvn+sshzsvn+httpz svn+httpszsvn+svncCsdS)NT©)ÚclsZ remote_urlrrú@/usr/lib/python3.8/site-packages/pip/_internal/vcs/subversion.pyÚshould_add_vcs_url_prefix+sz$Subversion.should_add_vcs_url_prefixcCsd|gS)Nz-rr)ÚrevrrrÚget_base_rev_args/szSubversion.get_base_rev_argsc Cs¨d}t |¡D]”\}}}|j|kr0g|dd…<q| |j¡tj ||jd¡}tj |¡s\q| |¡\}}||kr||d}n|rŠ| |¡s˜g|dd…<qt ||ƒ}q|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) rÚlocationZrevisionÚbaseÚdirsÚfilesZ entries_fnZdirurlZlocalrevrrrÚ get_revision3s"       zSubversion.get_revisioncs"|dkrtt|ƒ ||¡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. Zssh)ÚsuperrÚget_netloc_and_authr)rZnetlocZscheme©Ú __class__rrr-OszSubversion.get_netloc_and_authcs2tt|ƒ |¡\}}}| d¡r(d|}|||fS)Nzssh://zsvn+)r,rÚget_url_rev_and_authr%)rÚurlrZ user_passr.rrr0\s zSubversion.get_url_rev_and_authcCs(g}|r|d|g7}|r$|d|g7}|S)Nz --usernamez --passwordr)ZusernameZpasswordZ extra_argsrrrÚ make_rev_argses   zSubversion.make_rev_argscCsR|}tj tj |d¡¡sD|}tj |¡}||krt d|¡dSq| |¡dS)Nzsetup.pyzGCould not find setup.py for directory %s (tried all parent directories)r)rr!r#r"rÚloggerZwarningr$)rr'Z orig_locationZ last_locationrrrÚget_remote_urlps ýzSubversion.get_remote_urlc Cspddlm}tj ||jd¡}tj |¡rHt|ƒ}| ¡}W5QRXnd}|  d¡sj|  d¡sj|  d¡r¬t t t j | d¡ƒƒ}|dd=|dd }d d „|Dƒdg}n¨|  d ¡röt |¡}|sÐtd |ƒ‚| d¡}dd „t |¡Dƒdg}n^z<|jdd|gdd} t | ¡ d¡}dd „t | ¡Dƒ}Wn |k rRdg}}YnX|rdt|ƒ} nd} || fS)Nr)ÚInstallationErrorrÚÚ8Ú9Z10z écSs,g|]$}t|ƒdkr|drt|dƒ‘qS)é )ÚlenÚint)Ú.0ÚdrrrÚ –s z/Subversion._get_svn_url_rev..zs,           *