U
    
Ha                     @   s   d dl Z d dlmZmZmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZ e eZG dd deZee dS )	    N)ListOptionalTuple)
HiddenTextdisplay_path)make_command)path_to_url)AuthInfoRemoteNotFoundError
RevOptionsVersionControlvcsc                       sx   e Zd ZdZdZdZdZe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  ZS )Bazaarbzrz.bzrbranch)zbzr+httpz	bzr+httpszbzr+sshzbzr+sftpzbzr+ftpzbzr+lpzbzr+filec                 C   s   d| gS )Nz-r )revr   r   </tmp/pip-unpacked-wheel-tx790h60/pip/_internal/vcs/bazaar.pyget_base_rev_args   s    zBazaar.get_base_rev_argsc                 C   s>   |  }td||t| tdd| ||}| | d S )NzChecking out %s%s to %sr   -q)
to_displayloggerinfor   r   to_argsrun_command)selfdesturlrev_options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   r   r   r   r   r   r   r"   .   s    zBazaar.switchc                 C   s"   t dd| }| j||d d S )Npullr   r#   )r   r   r   )r   r   r   r   r    r   r   r   update2   s    zBazaar.updatec                    s.   t  |\}}}|dr$d| }|||fS )Nzssh://zbzr+)superget_url_rev_and_auth
startswith)clsr   r   	user_pass	__class__r   r   r(   7   s    
zBazaar.get_url_rev_and_authc                 C   sz   | j dgdd|d}| D ]T}| }dD ]B}||r,||d }| |rbt|    S |    S q,qtd S )Nr   FTshow_stdoutZstdout_onlyr$   )zcheckout of branch: zparent branch:    )r   
splitlinesstripr)   split_is_local_repositoryr   r
   )r*   locationurlslinexrepor   r   r   get_remote_url@   s       

zBazaar.get_remote_urlc                 C   s    | j dgdd|d}| d S )NrevnoFTr.   )r   r1   )r*   r5   revisionr   r   r   get_revisionQ   s       zBazaar.get_revisionc                 C   s   dS )z&Always assume the versions don't matchFr   )r*   r   namer   r   r   is_commit_id_equalY   s    zBazaar.is_commit_id_equal)__name__
__module____qualname__r?   dirname	repo_nameschemesstaticmethodr   r!   r"   r&   classmethodr(   r:   r>   r@   __classcell__r   r   r,   r   r      s"   


r   )loggingtypingr   r   r   pip._internal.utils.miscr   r   pip._internal.utils.subprocessr   pip._internal.utils.urlsr    pip._internal.vcs.versioncontrolr	   r
   r   r   r   	getLoggerrA   r   r   registerr   r   r   r   <module>   s   
N