ó
'šMc           @   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	 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   call_subprocess(   t   logger(   t   rmtreet   display_path(   t   vcst   VersionControl(   t   path_to_url2t   Bazaarc           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 RS(   t   bzrs   .bzrt   branchs   bzr-branch.txts   bzr+https	   bzr+httpss   bzr+sshs   bzr+sftps   bzr+ftps[   # This was a Bazaar branch; to make it a branch again run:
bzr branch -r %(rev)s %(url)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(	   t   Nonet
   splitlinest   stript
   startswitht   ret   searcht   groupt   endt   split(   t   selft   contentt   urlt   revt   linet   match(    (    s2   /usr/lib/python2.7/dist-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(    (    s2   /usr/lib/python2.7/dist-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(    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyR*   .   s    c         C   s$   t  |  j d d g | d | ƒd  S(   Nt   pulls   -qR   (   R    R%   (   R   R+   R,   (    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   update1   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   R+   R   R   R,   t   rev_display(    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   obtain5   s    	c         C   sA   t  t |  ƒ j ƒ  \ } } | j d ƒ r7 d | } n  | | f S(   Ns   ssh://s   bzr+(   t   superR   R0   R   (   R   R   R   (    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyR0   C   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%   R'   R   R   R   R   t   _is_local_repositoryR   R   (   R   R(   t   urlsR   t   xt   repo(    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   get_urlJ   s    

c         C   s/   t  |  j d g d t d | ƒ} | j ƒ  d S(   Nt   revnoR   R   iÿÿÿÿ(   R    R%   R'   R   (   R   R(   t   revision(    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   get_revisionX   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%   R'   R   R   R   R   t   appendR   t   dict(   R   R(   R?   t   tag_revsR   t
   tags_matcht   tagR   (    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   get_tag_revs]   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(   R;   t   lowerR   t   egg_nameR   R   R>   RE   (	   R   t   distR(   t	   find_tagsR:   t   egg_project_namet   current_revRB   t   full_egg_name(    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   get_src_requirementi   s    (   R   s   bzr+https	   bzr+httpss   bzr+sshs   bzr+sftps   bzr+ftp(   t   __name__t
   __module__t   namet   dirnamet	   repo_namet   bundle_filet   schemest   guideR   R   R*   R.   R4   R0   R;   R>   RE   RN   (    (    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyR      s    									(   R"   R   R   t   pipR    t   pip.logR   t   pip.utilR   R   t   pip.vcsR   R   t   pip.downloadR   R   t   register(    (    (    s2   /usr/lib/python2.7/dist-packages/pip/vcs/bazaar.pyt   <module>   s   p