???<!-- 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d dlZd dlZd dlZd dlZd dl	m
Z
 ejde
d yd dlZW n ek
r~   Y nNX ejdkreedd dk ryd d	lmZ W n eefk
r   Y n
X ej  d d
lmZmZmZ d dlmZmZ d dlmZmZ d dlmZmZm Z m!Z! d dl"m#Z#m$Z$ d dl%m&Z&m'Z' d dl%m(Z( d dl	m)Z) d dl*Z+e+j,Z,dZ-ej.e/Z0ejde)d dd Z1dd Z2dd Z3dd Z4d ddZ5G dd de6Z7e/dkrej8e5  dS )!    )absolute_importN)DependencyWarningignore)categorydarwinZOPENSSL_VERSION_NUMBERi )securetransport)InstallationErrorCommandErrorPipError)get_installed_distributionsget_prog)deprecationdist_is_editable)git	mercurial
subversionbazaar)ConfigOptionParserUpdatingDefaultsHelpFormatter)get_summariesget_similar_commands)commands_dict)InsecureRequestWarningz9.0.3c                 sZ  dt jkrdS t jd j dd } tt jd }y| |d   W n tk
rZ   d Y nX dd t D g }yfd	d| D d
 }W n tk
r   d}Y nX t }|r|dkrtjd |dkoԈ j	d rJg } j
 }x<tddD ].}|jj	|r|j| dd kr|j|j qW |rJx|D ]}t| q.W tjd t|  }|dd |jjD 7 }dd | d|d  D fdd|D } fdd|D }x|D ](}	|	d
 }
|	d r|
d7 }
t|
 qW np j	ds j	dr0dd |jD }|j|j dd |D }dd |D 7 tdj fddD  tjd dS )zCommand and option completion for the main option parser (and options)
    and its subcommands (and options).

    Enable by sourcing one of the completion shell scripts (bash, zsh or fish).
    ZPIP_AUTO_COMPLETENZ
COMP_WORDS   Z
COMP_CWORD c             S   s   g | ]\}}|qS  r   ).0cmdZsummaryr   r   /usr/lib/python3.6/__init__.py
<listcomp>U   s    z autocomplete.<locals>.<listcomp>c                s   g | ]}| kr|qS r   r   )r   w)subcommandsr   r   r   Y   s    r   helpZ	uninstall-T)Z
local_onlyc             S   s&   g | ]}|j tjkr|j |jfqS r   )r"   optparseSUPPRESS_HELPget_opt_stringnargs)r   optr   r   r   r   q   s   c             S   s   g | ]}|j d d qS )=r   )split)r   xr   r   r   r   v   s    c                s    g | ]\}}| kr||fqS r   r   )r   r+   v)	prev_optsr   r   r   w   s    c                s"   g | ]\}}|j  r||fqS r   )
startswith)r   kr,   )currentr   r   r   y   s    r)   z--c             S   s   g | ]
}|j qS r   )option_list)r   ir   r   r   r      s    c             s   s   | ]}|D ]
}|V  q
qd S )Nr   )r   itor   r   r   	<genexpr>   s    zautocomplete.<locals>.<genexpr>c             S   s    g | ]}|j tjkr|j qS r   )r"   r$   r%   r&   )r   r2   r   r   r   r      s     c                s   g | ]}|j  r|qS r   )r.   )r   r+   )r0   r   r   r      s    )osenvironr*   int
IndexErrorr   create_main_parsersysexitr.   lowerr   keyappendprintr   parserZoption_list_allZoption_groupsr1   join)ZcwordsZcwordZoptionsZsubcommand_namerB   Z	installedZlcdistZ
subcommandZoptionZ	opt_labelZoptsr   )r0   r-   r!   r   autocompleteE   s\    








rE   c              C   s   ddt  dt d} tf | }|j  tjjtjjtjjt}dt	|t
jd d f |_tjtj|}|j| d|_t }dgd	d
 |D  }dj||_|S )Nz
%prog <command> [options]Fglobal)ZusageZadd_help_optionZ	formatternameprogzpip %s from %s (python %s)   Tr   c             S   s   g | ]\}}d ||f qS )z%-27s %sr   )r   r2   jr   r   r   r      s    z&create_main_parser.<locals>.<listcomp>
)r   r   r   Zdisable_interspersed_argsr7   pathdirnameabspath__file____version__r<   version
cmdoptionsZmake_option_groupZgeneral_groupZadd_option_groupmainr   rC   description)Z	parser_kwrB   Zpip_pkg_dirZgen_optsZcommand_summariesrT   r   r   r   r;      s"    


r;   c             C   s   t  }|j| \}}|jr>tjj|j tjjtj tj  | s\|d dkrlt	|dkrl|j
  tj  |d }|tkrt|}d| g}|r|jd|  tdj|| d d  }|j| ||fS )Nr   r"   r   zunknown command "%s"zmaybe you meant "%s"z - )r;   
parse_argsrQ   r<   stdoutwriter7   linesepr=   lenZ
print_helpr   r   r@   r	   rC   remove)argsrB   Zgeneral_optionsZ	args_elsecmd_nameZguessmsgcmd_argsr   r   r   	parseopts   s&    	

r_   c             C   s   d}d| krd}|S )NFz
--isolatedTr   )r[   isolatedr   r   r   check_isolated   s    ra   c             C   s   | d krt jdd  } tj  t  yt| \}}W nJ tk
r~ } z.t jjd|  t jjt	j
 t jd W Y d d }~X nX ytjtjd W n0 tjk
r } ztjd| W Y d d }~X nX t| t|d}|j|S )Nr   z	ERROR: %sr   z%Ignoring error %s when setting locale)r`   )r<   argvr   Zinstall_warning_loggerrE   r_   r
   stderrrW   r7   rX   r=   locale	setlocaleLC_ALLErrorloggerdebugr   ra   rS   )r[   r\   r^   exceZcommandr   r   r   rS      s     rS   c               @   sL   e Zd Zf fddZejdZejdZedd Z	e
dd Zd	d
 ZdS )FrozenRequirementc             C   s   || _ || _|| _|| _d S )N)rG   reqeditablecomments)selfrG   rm   rn   ro   r   r   r   __init__   s    zFrozenRequirement.__init__z-r(\d+)$z-(20\d\d\d\d\d\d)$c             C   s  t jjt jj|j}g }ddlm}m} t|r|j	|rd}y|||}W n2 t
k
r }	 ztjd|	 d }W Y d d }	~	X nX |d krtjd| |jd |j }d}nd}|j }|j}
t|
dkr|
d d dkstd|
|f |
d d }| jj|}| jj|}|s|r|jd}|r:| j||}|sXtjd| |jd nF|jd|  |rx|jd}nd|jd }d}d||| j|f }| |j|||S )Nr   )vcsget_src_requirementTzYError when trying to get requirement for VCS system %s, falling back to uneditable formatz-Could not determine repository location of %sz-## !! Could not determine repository locationFr   =====z5Expected 1 spec with == or ===; specs = %r; dist = %rZsvnz(Warning: cannot find svn location for %szF## FIXME: could not find svn URL in dependency_links for this package:z3# Installing as editable to satisfy requirement %s:z{%s}z%s@%s#egg=%s)rt   ru   )r7   rL   normcaserN   locationpip.vcsrr   rs   r   Zget_backend_namer   rh   Zwarningr@   Zas_requirementspecsrY   AssertionError_rev_research_date_reZget_backendZget_locationgroupegg_nameZproject_name)clsrD   Zdependency_linksrw   ro   rr   rs   rn   rm   rj   ry   rQ   Z	ver_matchZ
date_matchZsvn_backendZsvn_locationZrevr   r   r   	from_dist  sf    
zFrozenRequirement.from_distc             C   s,   | j  }tjd|}|r(|d |j  }|S )Nz
-py\d\.\d$)r   rer|   start)rD   rG   matchr   r   r   r   I  s
    zFrozenRequirement.egg_namec             C   s2   | j }| jrd| }djt| jt|g d S )Nz-e %srK   )rm   rn   rC   listro   str)rp   rm   r   r   r   __str__Q  s    zFrozenRequirement.__str__N)__name__
__module____qualname__rq   r   compiler{   r}   classmethodr   staticmethodr   r   r   r   r   r   rl      s   

Arl   __main__)N)9Z
__future__r   rd   Zloggingr7   r$   warningsr<   r   Zpip._vendor.urllib3.exceptionsr   filterwarningsZsslImportErrorplatformgetattrZpip._vendor.urllib3.contribr   OSErrorZinject_into_urllib3Zpip.exceptionsr   r	   r
   Z	pip.utilsr   r   r   r   rx   r   r   r   r   Zpip.baseparserr   r   Zpip.commandsr   r   r   r   Zpip.cmdoptionsZpiprR   rP   Z	getLoggerr   rh   rE   r;   r_   ra   rS   objectrl   r=   r   r   r   r   <module>   sR   


I*	
[
