3
[U                 @   s   d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
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)path_to_url)display_pathmake_vcs_requirement_urlrmtree)TempDirectory)VersionControlvcsc                   s   e Zd ZdZdZdZd!Zd" fdd	Zdd Zdd Z	dd Z
dd Zdd Z fddZdd Zdd Zdd Zdd  Z  ZS )#Bazaarbzrz.bzrbranchbzr+http	bzr+httpsbzr+sshbzr+sftpbzr+ftpbzr+lpNc                s6   t t| j|f|| ttdd r2tjjdg d S )Nuses_fragmentlp)superr   __init__getattrurllib_parser   extend)selfurlargskwargs)	__class__ 9/tmp/pip-install-65viz3iy/pip/pip/_internal/vcs/bazaar.pyr      s    zBazaar.__init__c             C   s   d|gS )Nz-rr    )r   revr    r    r!   get_base_rev_args"   s    zBazaar.get_base_rev_argsc             C   sP   t jj|rt| tdd(}| j|j | jd|g|jdd W dQ R X dS )zU
        Export the Bazaar repository at the url to the destination location
        export)kindF)cwdshow_stdoutN)ospathexistsr   r   unpackrun_command)r   locationtemp_dirr    r    r!   r$   %   s    zBazaar.exportc             C   sB   |j  }tjd||t| ddg|j  ||g }| j| d S )NzChecking out %s%s to %sr   z-q)
to_displayloggerinfor   to_argsr,   )r   destr   rev_optionsrev_displaycmd_argsr    r    r!   	fetch_new5   s    
zBazaar.fetch_newc             C   s   | j d|g|d d S )Nswitch)r&   )r,   )r   r3   r   r4   r    r    r!   r8   @   s    zBazaar.switchc             C   s"   ddg|j   }| j||d d S )Npullz-q)r&   )r2   r,   )r   r3   r   r4   r6   r    r    r!   updateC   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)r   r   r"   	user_pass)r   r    r!   r;   G   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 )Nr1   F)r'   r&   checkout of branch: parent branch:    )r>   r?   )r,   
splitlinesstripr<   split_is_local_repositoryr   )r   r-   urlslinexrepor    r    r!   get_urlN   s    

zBazaar.get_urlc             C   s   | j dgd|d}|j d S )NrevnoF)r'   r&   r@   )r,   rA   )r   r-   revisionr    r    r!   get_revision[   s    zBazaar.get_revisionc             C   sR   | j |}|sd S |j jds(d| }| j|}|j jddd }t|||S )Nzbzr:zbzr+-r@   r   )rI   lowerr<   rM   egg_namerC   r   )r   distr-   rH   current_revegg_project_namer    r    r!   get_src_requirementa   s    

zBazaar.get_src_requirementc             C   s   dS )z&Always assume the versions don't matchFr    )r   r3   namer    r    r!   is_commit_id_equalk   s    zBazaar.is_commit_id_equal)r   r   r   r   r   r   r   )N)__name__
__module____qualname__rU   dirname	repo_nameschemesr   r#   r$   r7   r8   r:   r;   rI   rM   rT   rV   __classcell__r    r    )r   r!   r      s     
r   )
__future__r   loggingr(   Zpip._vendor.six.moves.urllibr   r   pip._internal.downloadr   pip._internal.utils.miscr   r   r   pip._internal.utils.temp_dirr   pip._internal.vcsr	   r
   	getLoggerrW   r0   r   registerr    r    r    r!   <module>   s   
^