B
    =)H[ã!  ã            	   @   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m	Z	 ej
de	d� yd dlZW n ek
rv   Y nHX ejdkr¾ejdk r¾yd dlmZ W n eefk
r´   Y n
X e ¡  d d	lmZ d d
l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 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+ e ,e-¡Z.ej
de+d� dd„ Z/dd„ Z0dd„ Z1dd„ Z2ddd„Z3dS )é    )Úabsolute_importN)ÚDependencyWarningÚignore)ÚcategoryÚdarwini )Úsecuretransport)Ú__version__)Ú
cmdoptions)ÚCommandErrorÚPipError)Úget_installed_distributionsÚget_prog)Údeprecation)ÚgitÚ	mercurialÚ
subversionÚbazaar)ÚConfigOptionParserÚUpdatingDefaultsHelpFormatter)Úget_summariesÚget_similar_commands)Úcommands_dict)ÚInsecureRequestWarningc                 sÄ  dt jkrdS t jd  ¡ 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rÂt d¡ |dkoÔˆ  	d¡ }|�rNg }ˆ  
¡ }x<tdd�D ].}|j 	|¡rô|j| dd… krô| |j¡ qôW |�rNx|D ]}t|ƒ �q2W t d¡ t| ƒ }	xH|	jjD ]<}
|
jtjk�rbx&|
j|
j D ]}| ||
jf¡ �q‚W �qbW dd„ | d|d … D ƒ‰‡fdd„|D ƒ}‡ fdd„|D ƒ}xÔ|D ]>}|d
 }|d �r|d
 dd… dk�r|d7 }t|ƒ �qæW nŒˆ  	d¡�sBˆ  	d¡�ršdd„ |jD ƒ}| |j¡ dd„ |D ƒ}x,|D ]$}
|
jtjk�rrˆ|
j|
j 7 ‰�qrW td ‡ fdd„ˆD ƒ¡ƒ t d¡ dS )zÃCommand 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).
    ÚPIP_AUTO_COMPLETENÚ
COMP_WORDSé   Ú
COMP_CWORDÚ c             S   s   g | ]\}}|‘qS © r   )Ú.0ÚcmdÚsummaryr   r   úWC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-qz7kpjmn\pip\pip\_internal\__init__.pyú
<listcomp>L   s    z autocomplete.<locals>.<listcomp>c                s   g | ]}|ˆ kr|‘qS r   r   )r   Úw)Úsubcommandsr   r"   r#   P   s    r   Úhelp)ÚshowÚ	uninstallú-T)Ú
local_onlyc             S   s   g | ]}|  d ¡d ‘qS )ú=r   )Úsplit)r   Úxr   r   r"   r#   s   s    c                s    g | ]\}}|ˆ kr||f‘qS r   r   )r   r-   Úv)Ú	prev_optsr   r"   r#   t   s    c                s"   g | ]\}}|  ˆ ¡r||f‘qS r   )Ú
startswith)r   Úkr.   )Úcurrentr   r"   r#   v   s    é   z--r+   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   g | ]}|  ˆ ¡r|‘qS r   )r0   )r   r-   )r2   r   r"   r#   ˆ   s    )ÚosÚenvironr,   ÚintÚ
IndexErrorr   Úcreate_main_parserÚsysÚexitr0   Úlowerr   ÚkeyÚappendÚprintr   ÚparserÚoption_list_allr&   ÚoptparseÚSUPPRESS_HELPÚ
_long_optsÚ_short_optsÚnargsÚoption_groupsr4   Újoin)ÚcwordsÚcwordÚoptionsÚsubcommand_namerE   Úshould_list_installedÚ	installedÚlcÚdistÚ
subcommandÚoptÚopt_strÚoptionÚ	opt_labelÚoptsr   )r2   r/   r%   r"   Úautocomplete<   sh    







 
r\   c              C   s¤   ddt ƒ dtƒ dœ} tf | Ž}| ¡  tj tj tj t¡¡¡}dt	|t
jd d… f |_t tj|¡}| |¡ d|_tƒ }dgd	d
„ |D ƒ }d |¡|_|S )Nz
%prog <command> [options]FÚglobal)ÚusageÚadd_help_optionÚ	formatterÚnameÚprogzpip %s from %s (python %s)é   Tr   c             S   s   g | ]\}}d ||f ‘qS )z%-27s %sr   )r   r5   Újr   r   r"   r#   ¥   s    z&create_main_parser.<locals>.<listcomp>Ú
)r   r   r   Údisable_interspersed_argsr:   ÚpathÚdirnameÚabspathÚ__file__r   r?   Úversionr	   Úmake_option_groupÚgeneral_groupÚadd_option_groupÚmainr   rM   Údescription)Ú	parser_kwrE   Úpip_pkg_dirÚgen_optsÚcommand_summariesrp   r   r   r"   r>   Œ   s"    


r>   c             C   sÊ   t ƒ }| | ¡\}}|jr>tj |j¡ tj tj¡ t ¡  |rZ|d dkrjt	|ƒdkrj| 
¡  t ¡  |d }|tkr¬t|ƒ}d| g}|rž| d| ¡ td |¡ƒ‚| d d … }| |¡ ||fS )Nr   r&   r   zunknown command "%s"zmaybe you meant "%s"z - )r>   Ú
parse_argsrk   r?   ÚstdoutÚwriter:   Úlinesepr@   ÚlenÚ
print_helpr   r   rC   r
   rM   Úremove)ÚargsrE   Úgeneral_optionsÚ	args_elseÚcmd_nameÚ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    r…   c          
   C   sà   | d krt jdd … } t ¡  tƒ  yt| ƒ\}}W nJ tk
r~ } z,t j d| ¡ t j t	j
¡ t  d¡ W d d }~X Y nX yt tjd¡ W n0 tjk
rÂ } zt d|¡ W d d }~X Y nX t| t|ƒd�}| |¡S )Nr   z	ERROR: %sr   z%Ignoring error %s when setting locale)r„   )r?   Úargvr   Úinstall_warning_loggerr\   rƒ   r   Ústderrrw   r:   rx   r@   ÚlocaleÚ	setlocaleÚLC_ALLÚErrorÚloggerÚdebugr   r…   ro   )r|   r   r‚   ÚexcÚeÚcommandr   r   r"   ro   Þ   s     ro   )N)4Ú
__future__r   r‰   Úloggingr:   rG   Úwarningsr?   Zpip._vendor.urllib3.exceptionsr   ÚfilterwarningsÚsslÚImportErrorÚplatformÚOPENSSL_VERSION_NUMBERZpip._vendor.urllib3.contribr   ÚOSErrorZinject_into_urllib3Úpipr   Úpip._internalr	   Úpip._internal.exceptionsr
   r   Úpip._internal.utils.miscr   r   Úpip._internal.utilsr   Úpip._internal.vcsr   r   r   r   Úpip._internal.baseparserr   r   Úpip._internal.commandsr   r   r   r   Ú	getLoggerÚ__name__r�   r\   r>   rƒ   r…   ro   r   r   r   r"   Ú<module>   sF   

P*	