???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
Pf                 @   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_fragmentZlp)superr	   __init__getattrurllib_parser   extendZnon_hierarchical)selfurlargskwargs)	__class__ /usr/lib/python3.6/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)tempfileZmkdtempunpackospathexistsr   run_command)r   locationZ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 )NZ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_revZcheck_destinationloggerinfor   r'   )r   r*   r   revr+   Z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	   r.   
startswith)r   r   r1   )r   r   r   r.   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 )Nr0   F)r!   r    checkout of branch: parent branch:    )r4   r5   )r'   
splitlinesstripr3   splitZ_is_local_repositoryr   )r   r(   Zurlslinexrepor   r   r   get_urlS   s    

zBazaar.get_urlc             C   s   | j dgd|d}|j d S )NZrevnoF)r!   r    r6   )r'   r7   )r   r(   Z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+-r6   r   z%s@%s#egg=%s)r=   lowerr3   Zegg_namer9   r?   )r   Zdistr(   r<   Zegg_project_nameZ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dirnameZ	repo_nameZschemesr   r   r)   r,   r2   r.   r=   r?   rB   rC   __classcell__r   r   )r   r   r	      s    
r	   )Z
__future__r   Zloggingr$   r"   Zurllibr   r   ImportErrorZurlparseZ	pip.utilsr   r   Zpip.vcsr   r   Zpip.downloadr   Z	getLoggerrD   r/   r	   registerr   r   r   r   <module>   s   
_