U
    „~$hÈ  ã                   @   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                       sÞ   e Zd ZdZdZdZdZeee	e dœdd„ƒZ
e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)zbzr+httpz	bzr+httpszbzr+sshzbzr+sftpzbzr+ftpzbzr+lpzbzr+file)ÚrevÚreturnc                 C   s   d| gS )Nz-r© )r   r   r   ú</tmp/pip-unpacked-wheel-g27rp152/pip/_internal/vcs/bazaar.pyÚget_base_rev_args    s    zBazaar.get_base_rev_argsN)ÚdestÚurlÚrev_optionsÚ	verbosityr   c                 C   sp   |  ¡ }t d||t|ƒ¡ |dkr,dg}n|dkr:g }ndd| › �g}td	|| ¡ ||fžŽ }|  |¡ d S )
NzChecking out %s%s to %sr   z--quieté   ú-ÚvÚcheckoutú--lightweight)r   r   )Ú
to_displayÚloggerÚinfor   r   Úto_argsÚrun_command)Úselfr   r   r   r   Úrev_displayÚflagsÚcmd_argsr   r   r   Ú	fetch_new$   s,    ü   ÿ   ÿzBazaar.fetch_new)r   r   r   r   c                 C   s   | j td|ƒ|d� d S )NÚswitch©Úcwd)r#   r   )r$   r   r   r   r   r   r   r)   9   s    zBazaar.switchc                 C   s\   | j tdƒdd|d�}| d¡r:tdd|ƒ}| j ||d� td	d| ¡ ƒ}| j ||d� d S )
Nr!   FT©Úshow_stdoutZstdout_onlyr+   zStandalone Úbindz-qr*   Úupdate)r#   r   Ú
startswithr"   )r$   r   r   r   Úoutputr'   r   r   r   r/   <   s       ÿ
zBazaar.update)r   r   c                    s.   t ƒ  |¡\}}}| d¡r$d| }|||fS )Nzssh://zbzr+)ÚsuperÚget_url_rev_and_authr0   )Úclsr   r   Ú	user_pass©Ú	__class__r   r   r3   I   s    
zBazaar.get_url_rev_and_auth)Úlocationr   c                 C   sz   | j dgdd|d�}| ¡ D ]T}| ¡ }dD ]B}| |¡r,| |¡d }|  |¡rbt|ƒ    S |    S q,qt‚d S )Nr!   FTr,   )zcheckout of branch: zparent branch: r   )r#   Ú
splitlinesÚstripr0   ÚsplitÚ_is_local_repositoryr   r
   )r4   r8   ÚurlsÚlineÚxÚrepor   r   r   Úget_remote_urlQ   s       ÿ

zBazaar.get_remote_urlc                 C   s    | j dgdd|d�}| ¡ d S )NÚrevnoFTr,   éÿÿÿÿ)r#   r9   )r4   r8   Úrevisionr   r   r   Úget_revision`   s    üzBazaar.get_revision)r   Únamer   c                 C   s   dS )z&Always assume the versions don't matchFr   )r4   r   rF   r   r   r   Úis_commit_id_equalj   s    zBazaar.is_commit_id_equal)Ú__name__Ú
__module__Ú__qualname__rF   ÚdirnameÚ	repo_nameÚschemesÚstaticmethodÚstrr   r   r   r   Úintr(   r)   r/   Úclassmethodr   r   r	   r3   rA   rE   ÚboolrG   Ú__classcell__r   r   r6   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   Ú	getLoggerrH   r    r   Úregisterr   r   r   r   Ú<module>   s   
^