3
ûâde)  ã               @   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 jeƒZG dd„ deƒZejeƒ dS )	é    N)ÚListÚOptionalÚTuple)Ú
HiddenTextÚdisplay_path)Úmake_command)Úpath_to_url)ÚAuthInfoÚRemoteNotFoundErrorÚ
RevOptionsÚVersionControlÚvcsc                   sÜ   e Zd ZdZdZdZd!Zeee	e dœdd„ƒZ
eeeddœdd„Zeeeddœdd„Zeeeddœdd„Zeeeeee ef dœ‡ fdd„ƒZeeedœdd„ƒZeeedœdd„ƒZeeee edœdd „ƒZ‡  ZS )"ÚBazaarÚbzrz.bzrÚbranchúbzr+httpú	bzr+httpsúbzr+sshúbzr+sftpúbzr+ftpúbzr+lpúbzr+file)ÚrevÚreturnc             C   s   d| gS )Nz-r© )r   r   r   ú7/tmp/pip-build-red6nood/pip/pip/_internal/vcs/bazaar.pyÚget_base_rev_args    s    zBazaar.get_base_rev_argsN)ÚdestÚurlÚrev_optionsr   c             C   s>   |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   Úto_argsÚrun_command)Úselfr   r   r   Ú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ƒ ƒ}| j||d� d S )NÚpullz-q)r)   )r   r"   r#   )r$   r   r   r   r&   r   r   r   Úupdate2   s    zBazaar.update)r   r   c                s.   t ƒ j|ƒ\}}}|jdƒr$d| }|||fS )Nzssh://zbzr+)ÚsuperÚget_url_rev_and_authÚ
startswith)Úclsr   r   Ú	user_pass)Ú	__class__r   r   r-   6   s    
zBazaar.get_url_rev_and_auth)Úlocationr   c             C   sr   | j dgdd|d�}xT|jƒ D ]H}|jƒ }x:dD ]2}|j|ƒr0|j|ƒd }| j|ƒr^t|ƒS |S q0W qW t‚d S )	Nr!   FT)Úshow_stdoutÚstdout_onlyr)   úcheckout of branch: úparent branch: é   )r5   r6   )r#   Ú
splitlinesÚstripr.   ÚsplitÚ_is_local_repositoryr   r
   )r/   r2   ÚurlsÚlineÚxÚrepor   r   r   Úget_remote_url>   s    


zBazaar.get_remote_urlc             C   s    | j dgdd|d�}|jƒ d S )NÚrevnoFT)r3   r4   r)   r7   éÿÿÿÿ)r#   r8   )r/   r2   Úrevisionr   r   r   Úget_revisionM   s    zBazaar.get_revision)r   Únamer   c             C   s   dS )z&Always assume the versions don't matchFr   )r/   r   rE   r   r   r   Úis_commit_id_equalW   s    zBazaar.is_commit_id_equal)r   r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__rE   ÚdirnameÚ	repo_nameÚschemesÚstaticmethodÚstrr   r   r   r   r'   r(   r+   Úclassmethodr   r   r	   r-   r@   rD   ÚboolrF   Ú__classcell__r   r   )r1   r   r      s.         $	r   )ÚloggingÚtypingr   r   r   Zpip._internal.utils.miscr   r   Zpip._internal.utils.subprocessr   Zpip._internal.utils.urlsr   Z pip._internal.vcs.versioncontrolr	   r
   r   r   r   Ú	getLoggerrG   r    r   Úregisterr   r   r   r   Ú<module>   s   
K