B
    =)H[  ã               @   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 d dlmZ d dlmZmZ e e¡ZG dd	„ d	eƒZe e¡ dS )
é    )Úabsolute_importN)Úparse)Úpath_to_url)Údisplay_pathÚ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)r   zbzr+httpz	bzr+httpszbzr+sshzbzr+sftpzbzr+ftpzbzr+lpNc                s6   t t| ƒj|f|ž|Ž ttdd ƒr2tj dg¡ d S )NÚuses_fragmentÚlp)Úsuperr
   Ú__init__ÚgetattrÚurllib_parser   Úextend)ÚselfÚurlÚargsÚkwargs)Ú	__class__© úYC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-qz7kpjmn\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 |¡rt|ƒ tdd��(}|  |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   s   | j d|g|d� d S )NÚswitch)r   )r%   )r   Údestr   Úrev_optionsr   r   r   r(   3   s    zBazaar.switchc             C   s"   ddg|  ¡  }| j||d� d S )NÚpullz-q)r   )Úto_argsr%   )r   r)   r*   Úcmd_argsr   r   r   Úupdate6   s    zBazaar.updatec             C   sf   |   ¡ \}}|  |¡}|  |||¡rb| ¡ }t d||t|ƒ¡ ddg| ¡  ||g }|  |¡ d S )NzChecking out %s%s to %sr   z-q)	Úget_url_revÚmake_rev_optionsÚcheck_destinationÚ
to_displayÚloggerÚinfor   r,   r%   )r   r)   r   r   r*   Úrev_displayr-   r   r   r   Úobtain:   s    

zBazaar.obtainc                s,   t t| ƒ ¡ \}}| d¡r$d| }||fS )Nzssh://zbzr+)r   r
   r/   Ú
startswith)r   r   r   )r   r   r   r/   H   s    
zBazaar.get_url_revc             C   sl   | j dgd|d�}xT| ¡ D ]H}| ¡ }x:dD ]2}| |¡r.| |¡d }|  |¡r\t|ƒS |S q.W qW d S )Nr4   F)r    r   )zcheckout of branch: zparent branch: é   )r%   Ú
splitlinesÚstripr7   ÚsplitÚ_is_local_repositoryr   )r   r&   ÚurlsÚlineÚxÚrepor   r   r   Úget_urlO   s    


zBazaar.get_urlc             C   s   | j dgd|d�}| ¡ d S )NÚrevnoF)r    r   éÿÿÿÿ)r%   r9   )r   r&   Úrevisionr   r   r   Úget_revision\   s    zBazaar.get_revisionc             C   sT   |   |¡}|sd S | ¡  d¡s(d| }| ¡  dd¡d }|  |¡}d|||f S )Nzbzr:zbzr+ú-r8   r   z%s@%s#egg=%s)rA   Úlowerr7   Úegg_namer;   rE   )r   Údistr&   r@   Úegg_project_nameÚcurrent_revr   r   r   Úget_src_requirementb   s    

zBazaar.get_src_requirementc             C   s   dS )z&Always assume the versions don't matchFr   )r   r)   Únamer   r   r   Úis_commit_id_equall   s    zBazaar.is_commit_id_equal)N)Ú__name__Ú
__module__Ú__qualname__rM   ÚdirnameÚ	repo_nameÚschemesr   r   r   r(   r.   r6   r/   rA   rE   rL   rN   Ú__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   Úpip._internal.utils.temp_dirr   Úpip._internal.vcsr   r	   Ú	getLoggerrO   r3   r
   Úregisterr   r   r   r   Ú<module>   s   
a