ó
©9Vc           @@  sæ   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z y d  d l m Z Wn e	 k
 rs d  d l
 Z n Xd  d l m Z m Z d  d l m Z m Z d  d l m Z e j e  Z d e f d     YZ e j e  d S(	   i    (   t   absolute_importN(   t   parse(   t   rmtreet   display_path(   t   vcst   VersionControl(   t   path_to_urlt   Bazaarc           B@  s}   e  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 RS(   t   bzrs   .bzrt   branchs   bzr+https	   bzr+httpss   bzr+sshs   bzr+sftps   bzr+ftps   bzr+lpc         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   getattrt   urllib_parset   NoneR
   t   extendt   non_hierarchical(   t   selft   urlt   argst   kwargs(    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyR      s    c         C@  ss   t  j d d  } |  j |  t j j |  r> t |  n  z# |  j d | g d | d t Wd t |  Xd S(   sU   
        Export the Bazaar repository at the url to the destination location
        s   -exports   pip-t   exportt   cwdt   show_stdoutN(	   t   tempfilet   mkdtempt   unpackt   ost   patht   existsR   t   run_commandt   False(   R   t   locationt   temp_dir(    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyR   '   s    c         C@  s   |  j  d | g d | d  S(   Nt   switchR   (   R    (   R   t   destR   t   rev_options(    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyR$   6   s    c         C@  s!   |  j  d d g | d | d  S(   Nt   pulls   -qR   (   R    (   R   R%   R&   (    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyt   update9   s    c         C@  s   |  j    \ } } | r1 d | g } d | } n g  } d } |  j | | | |  r t j d | | 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_destinationt   loggert   infoR   R    (   R   R%   R   t   revR&   t   rev_display(    (    s+   /tmp/pip-build-5Z5nTX/pip/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*   t
   startswith(   R   R   R.   (    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyR*   M   s    c         C@  s   |  j  d g d t d | } xp | j   D]b } | j   } xM d D]E } | j |  rD | j |  d } |  j |  r t |  S| SqD Wq+ Wd  S(   NR-   R   R   s   checkout of branch: s   parent branch: i   (   s   checkout of branch: s   parent branch: (	   R    R!   t
   splitlinest   stripR1   t   splitt   _is_local_repositoryR   R   (   R   R"   t   urlst   linet   xt   repo(    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyt   get_urlT   s    

c         C@  s,   |  j  d g d t d | } | j   d S(   Nt   revnoR   R   iÿÿÿÿ(   R    R!   R2   (   R   R"   t   revision(    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyt   get_revisiona   s    c         C@  s   |  j  d g d t d | } g  } xl | j   D]^ } t j d |  } | r1 | j d  } | j d  } | j | j   | j   f  q1 q1 Wt |  S(   Nt   tagsR   R   s   ([.\w-]+)\s*(.*)$i   i   (	   R    R!   R2   t   ret   searcht   groupt   appendR3   t   dict(   R   R"   R>   t   tag_revsR7   t
   tags_matcht   tagR.   (    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyt   get_tag_revsf   s    &c   	      C@  s¿   |  j  |  } | s d  S| j   j d  s; d | } n  | j   j d d  d } |  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:   R   t   lowerR1   t   egg_nameR4   R=   RG   (	   R   t   distR"   t	   find_tagsR9   t   egg_project_namet   current_revRD   t   full_egg_name(    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyt   get_src_requirementr   s    (   s   bzrs   bzr+https	   bzr+httpss   bzr+sshs   bzr+sftps   bzr+ftps   bzr+lpN(   t   __name__t
   __module__t   namet   dirnamet	   repo_namet   schemesR   R   R   R$   R(   R0   R*   R:   R=   RG   RP   (    (    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyR      s    								(   t
   __future__R    t   loggingR   R   R?   t   urllibR   R   t   ImportErrort   urlparset	   pip.utilsR   R   t   pip.vcsR   R   t   pip.downloadR   t	   getLoggerRQ   R,   R   t   register(    (    (    s+   /tmp/pip-build-5Z5nTX/pip/pip/vcs/bazaar.pyt   <module>   s   n