ó
ÇvSc           @   s­   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l m Z m	 Z	 m
 Z
 d  d l m Z m Z d  d l m Z d e f d „  ƒ  YZ e j e ƒ d S(	   iÿÿÿÿN(   t   urlparse(   t   logger(   t   rmtreet   display_patht   call_subprocess(   t   vcst   VersionControl(   t   path_to_urlt   Bazaarc           B   s’   e  Z d  Z d Z d Z d Z d Z d
 Z d d „ Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   t   bzrs   .bzrt   branchs   bzr-branch.txts   bzr+https	   bzr+httpss   bzr+sshs   bzr+sftps   bzr+ftps   bzr+lps[   # This was a Bazaar branch; to make it a branch again run:
bzr branch -r %(rev)s %(url)s .
c         O   s[   t  t |  ƒ j | | | Ž t t d d  ƒ rW t j j d g ƒ t j j d g ƒ n  d  S(   Nt   uses_fragmentt   lp(	   t   superR   t   __init__t   getattrR    t   NoneR   t   extendt   non_hierarchical(   t   selft   urlt   argst   kwargs(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyR      s    c         C   s¹   d  } } x¨ | j ƒ  D]š } | j ƒ  s | j ƒ  j d ƒ rE q n  t j d | ƒ } | ru | j d ƒ j ƒ  } n  | | j ƒ  j ƒ  j d  d ƒ d } | r | r | | f Sq Wd S(   Nt   #s   ^bzr\s*branch\s*-r\s*(\d*)i   i    (   NN(	   R   t
   splitlinest   stript
   startswitht   ret   searcht   groupt   endt   split(   R   t   contentR   t   revt   linet   match(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   parse_vcs_bundle_file   s    
"&c         C   s   t  j d d ƒ } |  j | ƒ t j j | ƒ r> t | ƒ n  z/ t |  j d | g d | d |  j	 d t
 ƒWd t | ƒ Xd S(   sC   Export the Bazaar repository at the url to the destination locations   -exports   pip-t   exportt   cwdt   filter_stdoutt   show_stdoutN(   t   tempfilet   mkdtempt   unpackt   ost   patht   existsR   R   t   cmdt   _filtert   False(   R   t   locationt   temp_dir(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyR%   )   s    c         C   s    t  |  j d | g d | ƒd  S(   Nt   switchR&   (   R   R/   (   R   t   destR   t   rev_options(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyR4   6   s    c         C   s$   t  |  j d d g | d | ƒd  S(   Nt   pulls   -qR&   (   R   R/   (   R   R5   R6   (    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   update9   s    c         C   s    |  j  ƒ  \ } } | r1 d | g } d | } n g  } d } |  j | | | | ƒ rœ t j d | | t | ƒ f ƒ t |  j d d g | | | g ƒ n  d  S(   Ns   -rs    (to revision %s)t    s   Checking out %s%s to %sR
   s   -q(   t   get_url_revt   check_destinationR   t   notifyR   R   R/   (   R   R5   R   R!   R6   t   rev_display(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   obtain=   s    	c         C   sA   t  t |  ƒ j ƒ  \ } } | j d ƒ r7 d | } n  | | f S(   Ns   ssh://s   bzr+(   R   R   R:   R   (   R   R   R!   (    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyR:   K   s    c         C   s˜   t  |  j d g d t d | ƒ} xp | j ƒ  D]b } | j ƒ  } xM d D]E } | j | ƒ rG | j | ƒ d } |  j | ƒ rˆ t | ƒ S| SqG Wq. Wd  S(   Nt   infoR(   R&   s   checkout of branch: s   parent branch: i   (   s   checkout of branch: s   parent branch: (
   R   R/   R1   R   R   R   R   t   _is_local_repositoryR   R   (   R   R2   t   urlsR"   t   xt   repo(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   get_urlR   s    

c         C   s/   t  |  j d g d t d | ƒ} | j ƒ  d S(   Nt   revnoR(   R&   iÿÿÿÿ(   R   R/   R1   R   (   R   R2   t   revision(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   get_revision`   s    c         C   s    t  |  j d g d t d | ƒ} g  } xl | j ƒ  D]^ } t j d | ƒ } | r4 | j d ƒ } | j d ƒ } | j | j ƒ  | j ƒ  f ƒ q4 q4 Wt	 | ƒ S(   Nt   tagsR(   R&   s   ([.\w-]+)\s*(.*)$i   i   (
   R   R/   R1   R   R   R   R   t   appendR   t   dict(   R   R2   RH   t   tag_revsR"   t
   tags_matcht   tagR!   (    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   get_tag_revse   s    &c   	      C   s¿   |  j  | ƒ } | j ƒ  j d ƒ s1 d | } n  | j ƒ  j d d ƒ d } | sW d  S|  j | ƒ } |  j | ƒ } | | k r˜ d | | | f } n d | j ƒ  | f } d | | | f S(	   Ns   bzr:s   bzr+t   -i   i    s   %s-%ss
   %s-dev_r%ss   %s@%s#egg=%s(   RD   t   lowerR   t   egg_nameR   R   RG   RN   (	   R   t   distR2   t	   find_tagsRC   t   egg_project_namet   current_revRK   t   full_egg_name(    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   get_src_requirementq   s    (   R	   s   bzr+https	   bzr+httpss   bzr+sshs   bzr+sftps   bzr+ftps   bzr+lpN(   t   __name__t
   __module__t   namet   dirnamet	   repo_namet   bundle_filet   schemest   guideR   R   R$   R%   R4   R8   R>   R:   RD   RG   RN   RW   (    (    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyR      s"   									(   R,   R)   R   t   pip.backwardcompatR    t   pip.logR   t   pip.utilR   R   R   t   pip.vcsR   R   t   pip.downloadR   R   t   register(    (    (    sH   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/pip/vcs/bazaar.pyt   <module>   s   x