Ñò
•èRc        
   @   s  d  d k  Z  d  d k Z d  d k l Z d  d k l Z d  d k l Z l Z l	 Z	 d  d k
 l Z d  d k l Z l Z e i d ƒ Z e i d ƒ Z e i d	 ƒ Z e i d
 ƒ Z e i d ƒ Z e i d ƒ Z d e f d „  ƒ  YZ d „  Z e i e ƒ d S(   iÿÿÿÿN(   t   urlparse(   t   Link(   t   rmtreet   display_patht   call_subprocess(   t   logger(   t   vcst   VersionControls   url="([^"]+)"s   committed-rev="(\d+)"s	   URL: (.+)s   Revision: (.+)s   \s*revision="(\d+)"s   <url>(.*)</url>t
   Subversionc           B   s­   e  Z d  Z d Z d Z d Z d Z d Z d	 „  Z d
 „  Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „ Z RS(   t   svns   .svnt   checkouts   svn+sshs   svn+https	   svn+httpss   svn+svns   svn-checkout.txtsg   # This was an svn checkout; to make it a checkout again run:
svn checkout --force -r %(rev)s %(url)s .
c         C   s
  | i  d ƒ i |  i ƒ p t d | ‚ t |  i d | g d t d h d d 6ƒ} t i | ƒ } | p- t	 i
 d t | ƒ ƒ t	 i d	 | ƒ d S| i d
 ƒ i ƒ  } t i | ƒ } | p3 t	 i
 d t | ƒ ƒ t	 i d	 | ƒ | d f S| | i d
 ƒ f S(   s/   Returns (url, revision), where both are stringst   /s   Bad directory: %st   infot   show_stdoutt   extra_environt   Ct   LANGs'   Cannot determine URL of svn checkout %ss!   Output that cannot be parsed: 
%si   s,   Cannot determine revision of svn checkout %sN(   NN(   t   rstript   endswitht   dirnamet   AssertionErrorR   t   cmdt   Falset   _svn_url_ret   searchR   t   warnR   R   t   Nonet   groupt   stript   _svn_revision_re(   t   selft   locationt   outputt   matcht   url(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   get_info   s    +(c         C   s    x™ | i  ƒ  D]‹ } | i ƒ  p | i ƒ  i d ƒ o q n t i d | ƒ } | p d S| i d ƒ } | | i ƒ  i ƒ  i d  d ƒ d } | | f SWd S(   Nt   #s   ^-r\s*([^ ])?i   i    (   NN(   NN(	   t
   splitlinesR   t
   startswitht   reR   R   R   t   endt   split(   R   t   contentt   lineR!   t   revt   rest(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   parse_vcs_bundle_file,   s     $&c      	   C   s³   |  i  ƒ  \ } } t | | ƒ } t i d | | f ƒ t i d 7_ zU t i i | ƒ o t | ƒ n t	 |  i
 d g | | | g d |  i d t ƒWd t i d 8_ Xd S(   s@   Export the svn repository at the url to the destination locations!   Exporting svn repository %s to %si   t   exportt   filter_stdoutR   N(   t   get_url_revt   get_rev_optionsR   t   notifyt   indentt   ost   patht   existsR   R   R   t   _filterR   (   R   R   R"   R,   t   rev_options(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyR/   8   s    c         C   s%   t  |  i d g | | | g ƒ d  S(   Nt   switch(   R   R   (   R   t   destR"   R9   (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyR:   I   s    c         C   s"   t  |  i d g | | g ƒ d  S(   Nt   update(   R   R   (   R   R;   R9   (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyR<   M   s    c         C   s¡   |  i  ƒ  \ } } t | | ƒ } | o d | } n d } |  i | | | | ƒ oH t i d | | t | ƒ f ƒ t |  i d d g | | | g ƒ n d  S(   Ns    (to revision %s)t    s   Checking out %s%s to %sR
   s   -q(   R1   R2   t   check_destinationR   R3   R   R   R   (   R   R;   R"   R,   R9   t   rev_display(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   obtainQ   s    	c         C   s   x‰ | D] } t  | ƒ i } | p q n d | j o& d i | i d ƒ d  ƒ i ƒ  } n | } | | i j o | i d d ƒ d Sq Wd  S(   Nt   -iÿÿÿÿR$   i   i    (   R   t   egg_fragmentt   joinR)   t   lowert   keyR   (   R   t   distt   dependency_linksR"   RB   RE   (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   get_location^   s     &c   
      C   sö   d } xé t  i | ƒ D]Ø \ } } } |  i | j o g  | (q n | i |  i ƒ t  i i | |  i d ƒ } t  i i | ƒ p q n |  i | ƒ \ } } | | j o | d }	 n( | p | i |	 ƒ o g  | (q n t	 | | ƒ } q W| S(   sR   
        Return the maximum revision for all files under a given location
        i    t   entriesR   (
   R5   t   walkR   t   removeR6   RC   R7   t   _get_svn_url_revR&   t   max(
   R   R   t   revisiont   baset   dirst   filest
   entries_fnt   dirurlt   localrevt   base_url(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   get_revisionl   s$     c         C   sC   t  t |  ƒ i ƒ  \ } } | i d ƒ o d | } n | | f S(   Ns   ssh://s   svn+(   t   superR   R1   R&   (   R   R"   R,   (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyR1   ‡   s    c         C   s|   | } xb t  i i t  i i | d ƒ ƒ p? | } t  i i | ƒ } | | j o t i d | ƒ d  Sq	 W|  i | ƒ d S(   Ns   setup.pysG   Could not find setup.py for directory %s (tried all parent directories)i    (	   R5   R6   R7   RC   R   R   R   R   RL   (   R   R   t   orig_locationt   last_location(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   get_urlŽ   s     "	
c      
   C   sV  d d k  l } t t i i | |  i d ƒ ƒ } | i ƒ  } | i ƒ  | i	 d ƒ p  | i	 d ƒ p | i	 d ƒ o’ t
 t t i | i d ƒ ƒ ƒ } | d d =| d d	 } g  } | D]9 } t | ƒ d
 j o  | d
 o | t | d
 ƒ q¼ q¼ ~ d g } n'| i	 d ƒ o} t i | ƒ }	 |	 p t d | ƒ ‚ n |	 i d ƒ } g  }
 t i | ƒ D] } |
 t | i d ƒ ƒ qf~
 d g } nš yv t |  i d d | g d t ƒ} t i | ƒ i d ƒ } g  } t i | ƒ D] } | t | i d ƒ ƒ qæ~ } Wn  | j
 o d  g  } } n X| o t | ƒ } n d } | | f S(   Niÿÿÿÿ(   t   InstallationErrorRI   t   8t   9t   10s   

i    i   i	   s   <?xmls   Badly formatted data: %ri   R   s   --xmlR   (   t   pip.exceptionsR[   t   openR5   R6   RC   R   t   readt   closeR&   t   listt   mapt   strR%   R)   t   lent   intt   _svn_xml_url_reR   t
   ValueErrorR   t   _svn_rev_ret   finditerR   R   R   t   _svn_info_xml_url_ret   _svn_info_xml_rev_reR   RM   (   R   R   R[   t   ft   dataR"   t   _[1]t   dt   revsR!   t   _[2]t   mt   xmlt   _[3]R,   (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyRL      s2    !
0!XD!=c         C   s„   t  |  i d d | g d t ƒ} g  } xV | i ƒ  D]H } | i ƒ  } t | d ƒ } | d i d ƒ } | i | | f ƒ q4 W| S(   Nt   lss   -vR   i    iÿÿÿÿR   (   R   R   R   R%   R)   Rg   R   t   append(   R   t   svn_tag_urlt   stdoutt   resultsR+   t   partsR,   t   tag(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   get_tag_revs¾   s     c         C   s^   d  } d  } xK | D]C \ } } | | j o* | d  j p | | j o | } | } q q W| S(   N(   R   (   R   R,   t   tag_revst   best_match_revt   best_tagR}   t   tag_rev(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   find_tag_matchÉ   s     c         C   s’  |  i  | ƒ } | d  j o d  S| i d ƒ } | i ƒ  i d d ƒ d } |  i | ƒ } | d d j o d | | d	 f } nþ | d d j o! d | i ƒ  | d	 | f } nÌ | d	 d j o™ d | i ƒ  | f } | ox d i | d	  ƒ d }	 |  i |	 ƒ }
 |  i | |
 ƒ } | o5 t i	 d | ƒ d |	 | f } d | | f } q\qn" t i
 d | ƒ d | | f } d | | | f S(   NR   RA   i   i    iþÿÿÿt   tagsR}   s   %s-%siÿÿÿÿt   branchest   branchs	   %s-%s-r%st   trunks
   %s-dev_r%ss   /tagss2   trunk checkout %s seems to be equivalent to tag %ss   %s/%ss?   svn URL does not fit normal structure (tags/branches/trunk): %ss   svn+%s@%s#egg=%s(   R„   s   tag(   R…   s   branch(   RZ   R   R)   t   egg_nameRV   RC   R~   Rƒ   R   R3   R   (   R   RF   R   t	   find_tagst   repoR|   t   egg_project_nameR,   t   full_egg_namet   tag_urlR   R!   (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   get_src_requirementÕ   s.    !(   s   svns   svn+sshs   svn+https	   svn+httpss   svn+svn(   t   __name__t
   __module__t   nameR   t	   repo_namet   schemest   bundle_filet   guideR#   R.   R/   R:   R<   R@   RH   RV   R1   RZ   RL   R~   Rƒ   R   RŽ   (    (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyR      s(   											!		c         C   sý   | o d | g } n g  } t  i |  ƒ } t | d ƒ o | i | i } } nq | d } d | j oM | i d ƒ d } d | j o | i d d ƒ \ } } qÃ | d  } } n d	 \ } } | o | d | g 7} n | o | d | g 7} n | S(
   Ns   -rt   usernamei   t   @i    t   :s
   --usernames
   --password(   NN(   R    t   urlsplitt   hasattrR–   t   passwordR)   R   (   R"   R,   R9   t   rR–   R›   t   netloct   auth(    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyR2   õ   s$    
(   R5   R'   t   pip.backwardcompatR    t	   pip.indexR   t   pip.utilR   R   R   t   pip.logR   t   pip.vcsR   R   t   compileRh   Rj   R   R   Rm   Rl   R   R2   t   register(    (    (    sN   /var/www/html/kasc-wg8/erics/lib/python2.6/site-packages/pip/vcs/subversion.pyt   <module>   s   ä	