U ��.eu�@s�ddlmZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z ddlmZddlmZmZe r�dd lmZmZdd lmZdd lmZmZe�e�ZGd d �d e�Ze�e�dS)�)�absolute_importN)�parse)� display_path�rmtree)� make_command)�MYPY_CHECK_RUNNING)� path_to_url)�VersionControl�vcs)�Optional�Tuple)� HiddenText)�AuthInfo� RevOptionscs�eZdZdZdZdZdZ�fdd�Zedd��Z d d �Z d d �Z d d�Z dd�Z e�fdd��Zedd��Zedd��Zedd��Z�ZS)�Bazaar�bzrz.bzr�branch)rzbzr+httpz bzr+httpszbzr+sshzbzr+sftpzbzr+ftpzbzr+lpcs0tt|�j||�ttdd�r,tj�dg�dS)N� uses_fragmentZlp)�superr�__init__�getattr� urllib_parser�extend)�self�args�kwargs�� __class__��|��}t�d||t|��tdd|��||�}|�|�dS)NzChecking out %s%s to %sr�-q)Z to_display�logger�inforrr(r')r�destr*r+Z rev_display�cmd_argsrrr� fetch_new=s��zBazaar.fetch_newcCs|jtd|�|d�dS)N�switch��cwd)r'r)rr/r*r+rrrr2Ksz Bazaar.switchcCs"tdd|���}|j||d�dS)NZpullr,r3)rr(r')rr/r*r+r0rrr�updateOsz Bazaar.updatecs2tt|��|�\}}}|�d�r(d|}|||fS)Nzssh://zbzr+)rr�get_url_rev_and_auth� startswith)�clsr*r Z user_passrrrr6Ts zBazaar.get_url_rev_and_authcCst|jdgd|d�}|��D]T}|��}dD]B}|�|�r*|�|�d}|�|�r`t|�S|Sq*qdS)Nr.F�r#r4)zcheckout of branch: zparent branch: �)r'� splitlines�stripr7�splitZ_is_local_repositoryr)r8r)Zurls�line�xZreporrr�get_remote_url]s   zBazaar.get_remote_urlcCs|jdgd|d�}|��dS)NZrevnoFr9�����)r'r;)r8r)Zrevisionrrr� get_revisionks �zBazaar.get_revisioncCsdS)z&Always assume the versions don't matchFr)r8r/�namerrr�is_commit_id_equalrszBazaar.is_commit_id_equal)�__name__� __module__� __qualname__rC�dirnameZ repo_nameZschemesr� staticmethodr!r"r1r2r5� classmethodr6r@rBrD� __classcell__rrrrrs&    r)Z __future__rZloggingr$Zpip._vendor.six.moves.urllibrrZpip._internal.utils.miscrrZpip._internal.utils.subprocessrZpip._internal.utils.typingrZpip._internal.utils.urlsrZ pip._internal.vcs.versioncontrolr r �typingr r r rrZ getLoggerrEr-r�registerrrrr�s       ^