Your IP : 3.145.83.149


Current Path : /lib/python2.7/site-packages/pip/vcs/
Upload File :
Current File : //lib/python2.7/site-packages/pip/vcs/subversion.pyc

�
��abc@@s)ddlmZddlZddlZddlZddlmZddlm	Z	ddl
mZmZddl
mZddlmZmZejd�Zejd	�Zejd
�Zejd�Zejd�Zejd
�Zeje�Zdefd��YZd�Zeje�dS(i(tabsolute_importN(tparse(tLink(trmtreetdisplay_path(t
indent_log(tvcstVersionControls
url="([^"]+)"scommitted-rev="(\d+)"s	URL: (.+)sRevision: (.+)s\s*revision="(\d+)"s<url>(.*)</url>t
SubversioncB@s�eZdZdZdZdZd�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�Zed��ZRS(tsvns.svntcheckoutssvn+sshssvn+https	svn+httpsssvn+svncC@s|jd�j|j�s,td|��|jd|gdtdidd6�}tj|�}|s�tj	dt
|��tjd	|�d
S|j
d
�j�}tj|�}|s�tj	dt
|��tjd	|�|dfS||j
d
�fS(s/Returns (url, revision), where both are stringst/sBad directory: %stinfotshow_stdoutt
extra_environtCtLANGs'Cannot determine URL of svn checkout %ss!Output that cannot be parsed: 
%sis,Cannot determine revision of svn checkout %sN(NN(trstriptendswithtdirnametAssertionErrortrun_commandtFalset_svn_url_retsearchtloggertwarningRtdebugtNonetgrouptstript_svn_revision_re(tselftlocationtoutputtmatchturl((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pytget_infos,



cC@s�|j�\}}t||�}|j|�}tjd||�t��Htjj|�rlt	|�n|j
dg|||gdt�WdQXdS(s@Export the svn repository at the url to the destination locations!Exporting svn repository %s to %stexportR
N(tget_url_revtget_rev_optionstremove_auth_from_urlRRRtostpathtexistsRRR(R R!R$trevtrev_options((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyR&;s

cC@s"|jdg|||g�dS(Ntswitch(R(R tdestR$R.((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyR/JscC@s|jdg||g�dS(Ntupdate(R(R R0R.((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyR1MscC@s�|j�\}}t||�}|j|�}|rCd|}nd}|j||||�r�tjd||t|��|jddg|||g�ndS(Ns (to revision %s)tsChecking out %s%s to %sR
s-q(R'R(R)tcheck_destinationRRRR(R R0R$R-R.trev_display((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pytobtainPs

cC@s�x�|D]{}t|�j}|s(qnd|krYdj|jd�d �j�}n|}||jkr|jdd�dSqWdS(Nt-i����t#ii(Rtegg_fragmenttjointsplittlowertkeyR(R tdisttdependency_linksR$R8R<((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pytget_locationas
%c
C@s�d}x�tj|�D]�\}}}|j|krAg|(qn|j|j�tjj||jd�}tjj|�s�qn|j|�\}}||kr�|d}	n$|s�|j|	�r�g|(qnt	||�}qW|S(sR
        Return the maximum revision for all files under a given location
        itentriesR(
R*twalkRtremoveR+R9R,t_get_svn_url_revt
startswithtmax(
R R!trevisiontbasetdirstfilest
entries_fntdirurltlocalrevtbase_url((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pytget_revisionos"
cC@sAtt|�j�\}}|jd�r7d|}n||fS(Nsssh://ssvn+(tsuperRR'RD(R R$R-((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyR'�s
cC@sw|}x]tjjtjj|d��se|}tjj|�}||kr	tjd|�dSq	W|j|�dS(Nssetup.pysGCould not find setup.py for directory %s (tried all parent directories)i(	R*R+R,R9RRRRRC(R R!t
orig_locationt
last_location((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pytget_url�s$c
C@sIddlm}tjj||jd�}tjj|�rat|��}|j�}WdQXnd}|j	d�s�|j	d�s�|j	d�rt
ttj
|jd���}|dd=|dd	}g|D]2}t|�d
kr�|d
r�t|d
�^q�dg}n
|j	d�r�tj|�}	|	sNtd|��n|	jd
�}gtj|�D]}
t|
jd
��^qmdg}n�yk|jdd|gdt�}tj|�jd
�}gtj|�D]}
t|
jd
��^q�}Wn|k
r#dg}}nX|r9t|�}nd}||fS(Ni(tInstallationErrorR@R2t8t9t10s

ii	s<?xmlsBadly formatted data: %riRs--xmlR
(tpip.exceptionsRSR*R+R9RR,topentreadRDtlisttmaptstrt
splitlinesR:tlentintt_svn_xml_url_reRt
ValueErrorRt_svn_rev_retfinditerRRt_svn_info_xml_url_ret_svn_info_xml_rev_reRRE(
R R!RStentries_pathtftdataR$tdtrevsR#tmtxmlR-((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyRC�s>!I;	5
cC@s[|j|�}|dkrdS|j�jdd�d}|j|�}d|||fS(NR6iissvn+%s@%s#egg=%s(RRRtegg_nameR:RN(R R=R!trepotegg_project_nameR-((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pytget_src_requirement�scC@stS(s&Always assume the versions don't match(R(R R0R.((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyt
check_version�scC@sYtj|�}|jjd�d}|j||j|j|jf}tj|�}|S(Nt@i����(	turllib_parseturlsplittnetlocR:tschemeR+tquerytfragmentt
urlunsplit(R$tpurltstripped_netloct
url_piecestsurl((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyR)�s
!(R	ssvn+sshssvn+https	svn+httpsssvn+svn(t__name__t
__module__tnameRt	repo_nametschemesR%R&R/R1R5R?RNR'RRRCRpRqtstaticmethodR)(((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyRs"										,			cC@s�|rd|g}ng}tj|�}t|d�rO|j|j}}nl|d}d|kr�|jd�d}d|kr�|jdd�\}}q�|d}}nd	\}}|r�|d|g7}n|r�|d|g7}n|S(
Ns-rtusernameiRrit:s
--usernames
--password(NN(RsRtthasattrR�tpasswordR:R(R$R-R.trR�R�Rutauth((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyR(�s$
(t
__future__RtloggingR*tretpip._vendor.six.moves.urllibRRst	pip.indexRt	pip.utilsRRtpip.utils.loggingRtpip.vcsRRtcompileR`RbRRReRdt	getLoggerR~RRR(tregister(((s6/usr/lib/python2.7/site-packages/pip/vcs/subversion.pyt<module>s$�	

?>