
0c@_/                 @   s  d  d l  m Z d  d l Z d  d l Z d  d l m Z d  d l m Z m	 Z	 d  d l
 m Z d  d l m Z d  d l m Z d  d l m Z m Z e r d  d	 l m Z m Z d  d
 l m Z d  d l m Z m Z e j e  Z Gd d   d e  Z e j e  d S)    )absolute_importN)parse)display_pathrmtree)make_command)MYPY_CHECK_RUNNING)path_to_url)VersionControlvcs)OptionalTuple)
HiddenText)AuthInfo
RevOptionsc                   s   e  Z d  Z d Z d Z d Z d Z   f d
 d   Z e d d    Z	 d d   Z
 d d   Z d d   Z d d   Z e   f d d    Z e d d    Z e d d    Z e d d    Z   S)Bazaarbzrz.bzrbranchbzr+http	bzr+httpsbzr+sshbzr+sftpbzr+ftpbzr+lpc                sB   t  t |   j | |   t t d d   r> t j j d g  d  S)Nuses_fragmentlp)superr   __init__getattrurllib_parser   extend)selfargskwargs)	__class__ 7/tmp/pip-build-jynh7p1z/pip/pip/_internal/vcs/bazaar.pyr   #   s    zBazaar.__init__c             C   s
   d |  g S)Nz-rr$   )revr$   r$   r%   get_base_rev_args*   s    zBazaar.get_base_rev_argsc             C   sW   t  j j |  r t |  |  j |  \ } } |  j t d | | | j     d S)zU
        Export the Bazaar repository at the url to the destination location
        exportN)ospathexistsr   Zget_url_rev_optionsrun_commandr   to_args)r    locationurlrev_optionsr$   r$   r%   r(   .   s
    
zBazaar.exportc             C   sW   | j    } t j d | | t |   t d d | j   | |  } |  j |  d  S)NzChecking out %s%s to %sr   z-q)Z
to_displayloggerinfor   r   r-   r,   )r    destr/   r0   rev_displaycmd_argsr$   r$   r%   	fetch_new<   s    zBazaar.fetch_newc             C   s    |  j  t d |  d | d  S)Nswitchcwd)r,   r   )r    r3   r/   r0   r$   r$   r%   r7   J   s    zBazaar.switchc             C   s/   t  d d | j    } |  j | d | d  S)Npullz-qr8   )r   r-   r,   )r    r3   r/   r0   r5   r$   r$   r%   updateN   s    zBazaar.updatec                sG   t  t |   j |  \ } } } | j d  r: d | } | | | f S)Nzssh://zbzr+)r   r   get_url_rev_and_auth
startswith)clsr/   r&   	user_pass)r#   r$   r%   r;   S   s    !
zBazaar.get_url_rev_and_authc             C   s   |  j  d g d | } xp | j   D]b } | j   } xM d D]E } | j |  r> | j |  d } |  j |  r t |  S| Sq> Wq% Wd  S)Nr2   r8   checkout of branch: parent branch:    )r?   r@   )r,   
splitlinesstripr<   split_is_local_repositoryr   )r=   r.   urlslinexrepor$   r$   r%   get_remote_url\   s    

zBazaar.get_remote_urlc             C   s&   |  j  d g d | } | j   d S)Nrevnor8   rA   )r,   rB   )r=   r.   revisionr$   r$   r%   get_revisionj   s    zBazaar.get_revisionc             C   s   d S)z&Always assume the versions don't matchFr$   )r=   r3   namer$   r$   r%   is_commit_id_equalq   s    zBazaar.is_commit_id_equal)zbzrr   r   r   r   r   r   )__name__
__module____qualname__rO   dirname	repo_nameschemesr   staticmethodr'   r(   r6   r7   r:   classmethodr;   rJ   rN   rP   r$   r$   )r#   r%   r      s    	r   )
__future__r   loggingr)   Zpip._vendor.six.moves.urllibr   r   Zpip._internal.utils.miscr   r   Zpip._internal.utils.subprocessr   Zpip._internal.utils.typingr   Zpip._internal.utils.urlsr   Z pip._internal.vcs.versioncontrolr	   r
   Ztypingr   r   r   r   r   	getLoggerrQ   r1   r   registerr$   r$   r$   r%   <module>   s   ]