3

gu                 @   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rd d	lmZmZ d d
lmZ d dlmZmZ ejeZG d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  ZS )Bazaarbzrz.bzrbranchbzr+http	bzr+httpsbzr+sshbzr+sftpbzr+ftpbzr+lpc                s0   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__ </tmp/pip-unpacked-wheel-v59g9nu1/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   sB   t jj|rt| | j|\}}| jtd|||j dd dS )zU
        Export the Bazaar repository at the url to the destination location
        exportF)show_stdoutN)ospathexistsr   get_url_rev_optionsrun_commandr   to_args)r    locationurlrev_optionsr$   r$   r%   r(   .   s    zBazaar.exportc             C   s>   |j  }tjd||t| tdd|j ||}| j| d S )NzChecking out %s%s to %sr   z-q)
to_displayloggerinfor   r   r/   r.   )r    destr1   r2   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    r6   r1   r2   r$   r$   r%   r:   K   s    zBazaar.switchc             C   s"   t dd|j }| j||d d S )Npullz-q)r;   )r   r/   r.   )r    r6   r1   r2   r8   r$   r$   r%   updateO   s    zBazaar.updatec                s2   t t| j|\}}}|jdr(d| }|||fS )Nzssh://zbzr+)r   r   get_url_rev_and_auth
startswith)clsr1   r&   	user_pass)r#   r$   r%   r>   T   s    
zBazaar.get_url_rev_and_authc             C   sl   | j dgd|d}xT|j D ]H}|j }x:dD ]2}|j|r.|j|d }| j|r\t|S |S q.W qW d S )Nr5   F)r)   r;   checkout of branch: parent branch:    )rB   rC   )r.   
splitlinesstripr?   split_is_local_repositoryr   )r@   r0   urlslinexrepor$   r$   r%   get_remote_url]   s    

zBazaar.get_remote_urlc             C   s   | j dgd|d}|j d S )NrevnoF)r)   r;   rD   )r.   rE   )r@   r0   revisionr$   r$   r%   get_revisionk   s    zBazaar.get_revisionc             C   s   dS )z&Always assume the versions don't matchFr$   )r@   r6   namer$   r$   r%   is_commit_id_equalr   s    zBazaar.is_commit_id_equal)r   r   r   r   r   r   r   )__name__
__module____qualname__rR   dirname	repo_nameschemesr   staticmethodr'   r(   r9   r:   r=   classmethodr>   rM   rQ   rS   __classcell__r$   r$   )r#   r%   r      s    	r   )
__future__r   loggingr*   pip._vendor.six.moves.urllibr   r   pip._internal.utils.miscr   r   pip._internal.utils.subprocessr   pip._internal.utils.typingr   pip._internal.utils.urlsr    pip._internal.vcs.versioncontrolr	   r
   typingr   r   r   r   r   	getLoggerrT   r4   r   registerr$   r$   r$   r%   <module>   s   
^