U ja£/ã@sÄddlZddlZddlZddlmZmZmZddlmZm Z m Z m Z m Z ddl mZmZddlmZmZmZmZmZe e¡Ze d¡Ze d¡Ze d¡Ze d ¡ZGd d „d eƒZe e¡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(.*)csÒ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%„Z‡ZS)'Ú SubversionÚsvnz.svnÚcheckout)zsvn+sshzsvn+httpz svn+httpszsvn+svnzsvn+filecCsdS)NT©)ÚclsÚ remote_urlrrút/private/var/folders/k6/_7fsz4ts3b78x3b3xwrxjh_c8s8xv7/T/pip-unpacked-wheel-bug3gbve/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ˆ|dk s~t‚|d}n|r–|  |¡s¤g|dd…<qt ||ƒ}qt |ƒ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ÚAssertionErrorÚ startswithÚmaxÚstr) rÚlocationÚrevisionÚbaseÚdirsÚ_Ú entries_fnÚdirurlÚlocalrevrrrÚ get_revision0s$        zSubversion.get_revisioncs|dkrtƒ ||¡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 )rÚnetlocÚscheme©Ú __class__rrr4NszSubversion.get_netloc_and_authcs.tƒ |¡\}}}| d¡r$d|}|||fS)Nzssh://zsvn+)r3Úget_url_rev_and_authr&)rÚurlrÚ user_passr7rrr9\s zSubversion.get_url_rev_and_authcCs(g}|r|d|g7}|r$|d|g7}|S)Nz --usernamez --passwordr)ÚusernameÚpasswordÚ extra_argsrrrÚ make_rev_argses   zSubversion.make_rev_argscCsT|}t|ƒs6|}tj |¡}||krt d|¡t‚q| |¡\}}|dkrPt‚|S)NzMCould not find Python project for directory %s (tried all parent directories))rrr!rÚloggerÚwarningr r$)rr)Ú orig_locationÚ last_locationr:Z_revrrrÚget_remote_urlps ýzSubversion.get_remote_urlc CsŠddlm}tj ||jd¡}tj |¡rHt|ƒ}| ¡}W5QRXnd}d}|  d¡sn|  d¡sn|  d¡r°t t t j | d¡ƒƒ}|dd=|dd }d d „|Dƒdg}n¾|  d ¡rüt |¡} | sÖtd |›ƒ‚|  d¡}dd „t |¡Dƒdg}nrzP|jdd|gddd} t | ¡} | dk s,t‚|  d¡}dd „t | ¡Dƒ}Wn |k rldg}}YnX|r~t|ƒ} nd} || fS)Nr)ÚInstallationErrorrÚÚ8Ú9Ú10z écSs,g|]$}t|ƒdkr|drt|dƒ‘qS)é )ÚlenÚint)Ú.0ÚdrrrÚ œs z/Subversion._get_svn_url_rev..zs     -