Viewing File: /usr/lib/python3.6/site-packages/pip/vcs/__pycache__/subversion.cpython-36.opt-1.pyc

3

aj$@sddlmZddlZddlZddlZddlmZddlm	Z	ddl
mZmZddl
mZddlmZmZejdZejd	Zejd
ZejdZejdZejd
ZejeZGdddeZddZejedS))absolute_importN)parse)Link)rmtreedisplay_path)
indent_log)vcsVersionControlz
url="([^"]+)"zcommitted-rev="(\d+)"z	URL: (.+)zRevision: (.+)z\s*revision="(\d+)"z<url>(.*)</url>cseZdZdZdZdZd"Zdd	Zd
dZdd
Z	ddZ
ddZddZddZ
fddZddZddZddZddZed d!ZZS)#
Subversionsvnz.svncheckoutsvn+sshsvn+http	svn+httpssvn+svncCs|jd|gdddid}tj|}|sFtjdt|tjd|dS|jd	j}t	j|}|stjd
t|tjd||dfS||jd	fS)z/Returns (url, revision), where both are stringsinfoFZLANGC)show_stdoutZ
extra_environz'Cannot determine URL of svn checkout %sz!Output that cannot be parsed: 
%sNz,Cannot determine revision of svn checkout %s)NN)
run_command_svn_url_researchloggerwarningrdebuggroupstrip_svn_revision_re)selflocationoutputmatchurlr# /usr/lib/python3.6/subversion.pyget_infos(



zSubversion.get_infocCst|j\}}t||}|j|}tjd||t6tjj|rJt	||j
dg|||gddWdQRXdS)z@Export the svn repository at the url to the destination locationz!Exporting svn repository %s to %sexportF)rN)get_url_revget_rev_optionsremove_auth_from_urlrrrospathexistsrr)rrr"revrev_optionsr#r#r$r&;s

zSubversion.exportcCs|jdg|||gdS)Nswitch)r)rdestr"r.r#r#r$r/JszSubversion.switchcCs|jdg||gdS)Nupdate)r)rr0r.r#r#r$r1MszSubversion.updatecCst|j\}}t||}|j|}|r.d|}nd}|j||||rptjd||t||jddg|||gdS)Nz (to revision %s)zChecking out %s%s to %srz-q)r'r(r)Zcheck_destinationrrrr)rr0r"r-r.Zrev_displayr#r#r$obtainPs



zSubversion.obtaincCsfx`|D]X}t|j}|sqd|kr@dj|jdddj}n|}||jkr|jdddSqWdS)N-r#r)regg_fragmentjoinsplitlowerkey)rdistZdependency_linksr"r7r;r#r#r$get_locationas


zSubversion.get_locationc
Csd}xtj|D]\}}}|j|kr2g|dd<q|j|jtjj||jd}tjj|s^q|j|\}}||kr~|d}	n |s|j|	rg|dd<qt	||}qW|S)zR
        Return the maximum revision for all files under a given location
        rNentries/)
r*walkdirnameremover+r8r,_get_svn_url_rev
startswithmax)
rrZrevisionbasedirsfilesZ
entries_fnZdirurlZlocalrevZbase_urlr#r#r$get_revisionos"

zSubversion.get_revisioncs,tt|j\}}|jdr$d|}||fS)Nzssh://zsvn+)superr
r'rD)rr"r-)	__class__r#r$r's
zSubversion.get_url_revcCsV|}xBtjjtjj|dsF|}tjj|}||krtjd|dSqW|j|dS)Nzsetup.pyzGCould not find setup.py for directory %s (tried all parent directories)r)r*r+r,r8rArrrC)rrZ
orig_locationZ
last_locationr#r#r$get_urlszSubversion.get_urlcCspddlm}tjj||jd}tjj|rHt|}|j}WdQRXnd}|j	dsj|j	dsj|j	drt
ttj
|jd}|dd=|dd	}d
d|Ddg}n|j	drtj|}|std
||jd}ddtj|Ddg}n^y<|jdd|gdd}	tj|	jd}ddtj|	D}Wn |k
rRdg}}YnX|rdt|}
nd}
||
fS)Nr)InstallationErrorr>r289Z10z

cSs,g|]$}t|dkr|drt|dqS)	)lenint).0dr#r#r$
<listcomp>sz/Subversion._get_svn_url_rev.<locals>.<listcomp>z<?xmlzBadly formatted data: %rrcSsg|]}t|jdqS)r)rSr)rTmr#r#r$rVsrz--xmlF)rcSsg|]}t|jdqS)r)rSr)rTrWr#r#r$rVs)Zpip.exceptionsrMr*r+r8rAr,openreadrDlistmapstr
splitlinesr9_svn_xml_url_rer
ValueErrorr_svn_rev_refinditerr_svn_info_xml_url_re_svn_info_xml_rev_rerE)rrrMZentries_pathfdatar"Zrevsr!Zxmlr-r#r#r$rCs>








zSubversion._get_svn_url_revcCsB|j|}|dkrdS|jjddd}|j|}d|||fS)Nr4rrzsvn+%s@%s#egg=%s)rLZegg_namer9rI)rr<rZrepoZegg_project_namer-r#r#r$get_src_requirements

zSubversion.get_src_requirementcCsdS)z&Always assume the versions don't matchFr#)rr0r.r#r#r$
check_versionszSubversion.check_versioncCs>tj|}|jjdd}|j||j|j|jf}tj|}|S)N@rr6)	urllib_parseurlsplitnetlocr9schemer+ZqueryZfragmentZ
urlunsplit)r"ZpurlZstripped_netlocZ
url_piecesZsurlr#r#r$r)s


zSubversion.remove_auth_from_url)rr
rrr)__name__
__module____qualname__namerAZ	repo_nameZschemesr%r&r/r1r3r=rIr'rLrCrfrgstaticmethodr)
__classcell__r#r#)rKr$r
s",	r
cCs|rd|g}ng}tj|}t|dr6|j|j}}nL|d}d|krz|jdd}d|krn|jdd\}}q|d}}nd	\}}|r|d|g7}|r|d|g7}|S)
Nz-rusernamerrhr:z
--usernamez
--password)NN)rirjhasattrrspasswordr9)r"r-r.rrsrvrkZauthr#r#r$r(s$


r()Z
__future__rZloggingr*reZpip._vendor.six.moves.urllibrriZ	pip.indexrZ	pip.utilsrrZpip.utils.loggingrZpip.vcsrr	compiler^r`rrrcrbZ	getLoggerrmrr
r(registerr#r#r#r$<module>s&






Y
Back to Directory File Manager