Ñò 9ÕÒTc @@s/ddklZddkZddkZddkZddklZddkl Z ddk l Z l Z l Z ddklZddklZlZeidƒZeid ƒZeid ƒZeid ƒZeid ƒZeid ƒZeieƒZdefd„ƒYZd„ZeieƒdS(i(tabsolute_importN(tparse(tLink(trmtreet display_pathtcall_subprocess(t indent_log(tvcstVersionControls url="([^"]+)"scommitted-rev="(\d+)"s URL: (.+)sRevision: (.+)s\s*revision="(\d+)"s(.*)t SubversioncB@s˜eZdZdZdZdZd„Zd„Zd „Zd „Z d „Z d „Z d „Z d„Z d„Zd„Zd„Zd„Zed„ZRS(tsvns.svntcheckoutssvn+sshssvn+https svn+httpsssvn+svncC@s|idƒi|iƒ ptd|‚t|id|gdtdhdd6ƒ}ti|ƒ}|p+t i dt |ƒƒt i d |ƒd S|id ƒiƒ}ti|ƒ}|p1t i d t |ƒƒt i d |ƒ|d fS||id ƒfS(s/Returns (url, revision), where both are stringst/sBad directory: %stinfot show_stdoutt extra_environtCtLANGs'Cannot determine URL of svn checkout %ss!Output that cannot be parsed: %sis,Cannot determine revision of svn checkout %sN(NN(trstriptendswithtdirnametAssertionErrorRtcmdtFalset _svn_url_retsearchtloggertwarningRtdebugtNonetgrouptstript_svn_revision_re(tselftlocationtoutputtmatchturl((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pytget_infos,     c C@s¤|iƒ\}}t||ƒ}tid||ƒtƒiiƒzUtii |ƒot |ƒnt |i dg|||gd|i dtƒWdQXdS(s@Export the svn repository at the url to the destination locations!Exporting svn repository %s to %stexportt filter_stdoutRN(t get_url_revtget_rev_optionsRR Rt__exit__t __enter__tostpathtexistsRRRt_filterR(R!R"R%trevt rev_options((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyR';scC@s%t|idg|||gƒdS(Ntswitch(RR(R!tdestR%R2((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyR3IscC@s"t|idg||gƒdS(Ntupdate(RR(R!R4R2((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyR5MscC@s|iƒ\}}t||ƒ}|od|}nd}|i||||ƒoDtid||t|ƒƒt|iddg|||gƒndS(Ns (to revision %s)tsChecking out %s%s to %sR s-q(R)R*tcheck_destinationRR RRR(R!R4R%R1R2t rev_display((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pytobtainQs cC@sx‰|D]}t|ƒi}|pqnd|jo&di|idƒd ƒiƒ}n|}||ijo|iddƒdSqWdS(Nt-iÿÿÿÿt#ii(Rt egg_fragmenttjointsplittlowertkeyR(R!tdisttdependency_linksR%R<R@((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyt get_locationbs &c C@söd}xéti|ƒD]Ø\}}}|i|jog|(qn|i|iƒtii||idƒ}tii|ƒpqn|i|ƒ\}}||jo|d} n(| p|i| ƒ og|(qnt ||ƒ}qW|S(sR Return the maximum revision for all files under a given location itentriesR ( R-twalkRtremoveR.R=R/t_get_svn_url_revt startswithtmax( R!R"trevisiontbasetdirstfilest entries_fntdirurltlocalrevtbase_url((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyt get_revisionps$ cC@sCtt|ƒiƒ\}}|idƒod|}n||fS(Nsssh://ssvn+(tsuperR R)RH(R!R%R1((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyR)‹scC@s{|}xatiitii|dƒƒp>|}tii|ƒ}||jotid|ƒdSq W|i|ƒdS(Nssetup.pysGCould not find setup.py for directory %s (tried all parent directories)i( R-R.R/R=RRRRRG(R!R"t orig_locationt last_location((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pytget_url’s"  c C@siddkl}ttii||idƒƒiiƒ}z|~}|i ƒ}WdQX|i dƒp |i dƒp|i dƒo’t t t i|idƒƒƒ}|dd=|dd}g}|D]9}t|ƒd jo |d o|t|d ƒqÏqÏ~dg} n'|i d ƒo}ti|ƒ} | ptd |ƒ‚n| id ƒ}g} ti|ƒD]} | t| id ƒƒqy~ dg} nšyvt|id d|gdtƒ} ti| ƒid ƒ}g}ti| ƒD]} |t| id ƒƒqù~} Wn |j odg}} nX| ot| ƒ}nd}||fS(Ni(tInstallationErrorRDt8t9t10s ii stlentintt_svn_xml_url_reRt ValueErrorRt _svn_rev_retfinditerRRRt_svn_info_xml_url_ret_svn_info_xml_rev_reRRI(R!R"RWt_[1]tftdataR%t_[2]tdtrevsR$t_[3]tmtxmlt_[4]R1((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyRG¦s88! XD =cC@s„t|idd|gdtƒ}g}xV|iƒD]H}|iƒ}t|dƒ}|didƒ}|i||fƒq4W|S(Ntlss-vRiiÿÿÿÿR (RRRRaR>RcRtappend(R!t svn_tag_urltstdouttresultstlinetpartsR1ttag((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyt get_tag_revsÍs  cC@s^d}d}xK|D]C\}}||jo*|djp ||jo|}|}qqW|S(N(R(R!R1ttag_revstbest_match_revtbest_tagR{ttag_rev((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pytfind_tag_matchØs  c C@s|i|ƒ}|djodS|idƒ}|iƒiddƒd}|i|ƒ}|ddjod||d f}nü|ddjo!d |iƒ|d |f}nÊ|d d jo˜d|iƒ|f}|owdi|d ƒd} |i| ƒ} |i|| ƒ} | o4ti d| ƒd| | f}d|| f}q[qn!ti d|ƒd||f}d|||fS(NR R:iiiþÿÿÿttagsR{s%s-%siÿÿÿÿtbranchestbranchs %s-%s-r%sttrunks %s-dev_r%ss/tagss2trunk checkout %s seems to be equivalent to tag %ss%s/%ss?svn URL does not fit normal structure (tags/branches/trunk): %sssvn+%s@%s#egg=%s(R‚stag(Rƒsbranch( RVRR>tegg_nameRRR=R|RRR R( R!RAR"t find_tagstrepoRztegg_project_nameR1t full_egg_namettag_urlR}R$((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pytget_src_requirementäs6 !(ssvnssvn+sshssvn+https svn+httpsssvn+svn(t__name__t __module__tnameRt repo_nametschemesR&R'R3R5R9RCRRR)RVRGR|RRRŒ(((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyR s"          ' cC@sý|od|g}ng}ti|ƒ}t|dƒo|i|i}}nq|d}d|joM|idƒd}d|jo|iddƒ\}}qÃ|d}}n d \}}|o|d|g7}n|o|d|g7}n|S( Ns-rtusernameit@it:s --usernames --password(NN(t urllib_parseturlsplitthasattrR’tpasswordR>R(R%R1R2trR’R˜tnetloctauth((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyR* s$    ( t __future__RtloggingR-tretpip._vendor.six.moves.urllibRR•t pip.indexRt pip.utilsRRRtpip.utils.loggingRtpip.vcsRRtcompileRdRfRR RiRht getLoggerRRR R*tregister(((s8/usr/lib/python2.6/vendor-packages/pip/vcs/subversion.pyts$   ò