3
LY                 @   s   d dl mZ d dlZd dlZd dlZyd dlmZ W n ek
rP   d dl	ZY nX d dl
mZmZ d dlmZmZ d dlmZ ejeZG dd deZeje dS )	    )absolute_importN)parse)rmtreedisplay_path)vcsVersionControl)path_to_urlc                   sz   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 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                sD   t t| j|f|| ttdd r@tjjdg tjjdg d S )Nuses_fragmentlp)superr	   __init__getattrurllib_parser   extendnon_hierarchical)selfurlargskwargs)	__class__ a/private/var/folders/7d/20zwc49s3kn54d3vgq8bd4640000gn/T/pip-build-an2lx5zf/pip/pip/vcs/bazaar.pyr      s    zBazaar.__init__c             C   sR   t jdd}| j| tjj|r*t| z| jd|g|dd W dt| X dS )zU
        Export the Bazaar repository at the url to the destination location
        z-exportzpip-exportF)cwdshow_stdoutN)tempfilemkdtempunpackospathexistsr   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-   5   s    zBazaar.switchc             C   s   | j ddg| |d d S )Npullz-q)r"   )r*   )r   r.   r/   r   r   r    update8   s    zBazaar.updatec             C   sl   | j  \}}|r"d|g}d| }ng }d}| j||||rhtjd||t| | jddg| ||g  d S )Nz-rz (to revision %s) zChecking out %s%s to %sr   z-q)get_url_revcheck_destinationloggerinfor   r*   )r   r.   r   revr/   rev_displayr   r   r    obtain;   s    

zBazaar.obtainc                s,   t t| j \}}|jdr$d| }||fS )Nzssh://zbzr+)r   r	   r3   
startswith)r   r   r7   )r   r   r    r3   L   s    
zBazaar.get_url_revc             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 )Nr6   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_urlS   s    

zBazaar.get_urlc             C   s   | j dgd|d}|j d S )NrevnoF)r#   r"   r=   )r*   r>   )r   r+   revisionr   r   r    get_revision`   s    zBazaar.get_revisionc             C   sT   | j |}|sd S |j jds(d| }|j jddd }| j|}d|||f S )Nzbzr:zbzr+-r=   r   z%s@%s#egg=%s)rF   lowerr:   egg_namer@   rJ   )r   distr+   rE   egg_project_namecurrent_revr   r   r    get_src_requiremente   s    

zBazaar.get_src_requirementc             C   s   dS )z&Always assume the versions don't matchFr   )r   r.   r/   r   r   r    check_versiono   s    zBazaar.check_version)r
   r   r   r   r   r   r   )N)__name__
__module____qualname__namedirname	repo_nameschemesr   r!   r-   r1   r9   r3   rF   rJ   rQ   rR   __classcell__r   r   )r   r    r	      s    
r	   )
__future__r   loggingr'   r$   urllibr   r   ImportErrorurlparse	pip.utilsr   r   pip.vcsr   r   pip.downloadr   	getLoggerrS   r5   r	   registerr   r   r   r    <module>   s   
_