B
    =)H[¾6  ã               @   sb  d Z 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
 ddlmZmZ ddlmZ ddlmZ ddlmZmZmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddl m!Z!m"Z"m#Z#m$Z$m%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/m0Z0 e0�r.ddl1m2Z2 dgZ3e 4e5¡Z6G dd„ de7ƒZ8G dd„ de8ƒZ9dS )z(Base Command class, and related routinesé    )Úabsolute_importN)Ú
cmdoptions)ÚConfigOptionParserÚUpdatingDefaultsHelpFormatter)ÚWINDOWS)Ú
PipSession)Ú
BadCommandÚCommandErrorÚInstallationErrorÚPreviousBuildDirErrorÚUninstallationError)ÚPackageFinder)Úrunning_under_virtualenv)Úparse_requirements)ÚInstallRequirement)ÚERRORÚPREVIOUS_BUILD_DIR_ERRORÚSUCCESSÚUNKNOWN_ERRORÚVIRTUALENV_NOT_FOUND)Údeprecation)ÚIndentingFormatter)Úget_progÚnormalize_path)Úpip_version_check)ÚMYPY_CHECK_RUNNING)ÚOptionalÚCommandc               @   sD   e Zd ZdZdZdZdZdZddd„Zddd„Z	dd	„ Z
d
d„ ZdS )r   NF)zext://sys.stdoutzext://sys.stderrc             C   sr   | j dtƒ | jf tƒ d| j| j|dœ}tf |Ž| _d| j ¡  }t 	| j|¡| _
t tj| j¡}| j |¡ d S )Nz%s %sF)ÚusageÚprogÚ	formatterÚadd_help_optionÚnameÚdescriptionÚisolatedz
%s Options)r   r   r"   r   Ú__doc__r   ÚparserÚ
capitalizeÚoptparseÚOptionGroupÚcmd_optsr   Úmake_option_groupÚgeneral_groupÚadd_option_group)Úselfr$   Ú	parser_kwÚoptgroup_nameÚgen_opts© r2   úZC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-qz7kpjmn\pip\pip\_internal\basecommand.pyÚ__init__2   s    zCommand.__init__c             C   s˜   t |jrttj |jd¡ƒnd |d k	r*|n|j|jd�}|jrF|j|_	|j
rT|j
|_|js^|rr|d k	rj|n|j|_|jrˆ|j|jdœ|_|j |j_|S )NÚhttp)ÚcacheÚretriesÚinsecure_hosts)r5   Úhttps)r   Ú	cache_dirr   ÚosÚpathÚjoinr7   Útrusted_hostsÚcertÚverifyÚclient_certÚtimeoutÚproxyÚproxiesÚno_inputÚauthÚ	prompting)r.   Úoptionsr7   rB   Úsessionr2   r2   r3   Ú_build_sessionJ   s    

zCommand._build_sessionc             C   s   | j  |¡S )N)r&   Ú
parse_args)r.   Úargsr2   r2   r3   rK   n   s    zCommand.parse_argsc                sB  |   |¡\}}|j|j | _| jdkr,d‰ n4| jdkr<d‰ n$| jdkrLd‰ n| jdkr\d‰ nd	‰ ˆ }|jrnd}d
}d}tj ddddtjdœidt	ddœiˆ ||j
| jd dgddœd||j
| jd ddœd||jpÖddddœdœ|ttd dd|jrødnd gƒƒdœ‡ fdd„d D ƒd!œ¡ tjd d"… d#k�r>t d$tj¡ |j�rPd%tjd&< |j�rjd' |j¡tjd(< |j�r–| j�s–tƒ �s–t d)¡ t t¡ t tj!j"ƒ}�z*y"|  #||¡}t$|t%ƒ�rÄ|S W �n t&k
�r } z t t'|ƒ¡ tj(d*dd+� t)S d }~X Y nÄ t*t+t,fk
�rL } z t t'|ƒ¡ tj(d*dd+� t-S d }~X Y n€ t.k
�rˆ } zt d,|¡ tj(d*dd+� t-S d }~X Y nD t/k
�r´   t d-¡ tj(d*dd+� t-S    tjd.dd+� t0S W d |j1�st2|d/dƒ�s| j3|dt4d0|j5ƒd1��}	t6|	|ƒ W d Q R X x&t tj!j"ƒ| D ]}
tj! 7|
¡ �q&W X t8S )2Né   ÚDEBUGéÿÿÿÿÚWARNINGéþÿÿÿr   éýÿÿÿÚCRITICALÚINFOz2pip._internal.utils.logging.ColorizedStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandlerFÚexclude_warningsz*pip._internal.utils.logging.MaxLevelFilter)z()ÚlevelÚindentz%(message)s)z()Úformatr   )rV   ÚclassÚno_colorÚstreamÚfiltersr    )rV   rY   rZ   r[   r    z	/dev/nullT)rV   rY   ÚfilenameÚdelayr    )ÚconsoleÚconsole_errorsÚuser_logr_   r`   ra   )rV   Úhandlersc                s"   i | ]}d ˆ dkrdndi|“qS )rV   )rT   r   rP   rN   r2   )Ú.0r"   )rV   r2   r3   ú
<dictcomp>¾   s   z Command.main.<locals>.<dictcomp>)zpip._vendorÚdistlibÚrequestsÚurllib3)ÚversionÚdisable_existing_loggersr\   Ú
formattersrb   ÚrootÚloggersé   )é   rn   zvPython 3.3 supported has been deprecated and support for it will be dropped in the future. Please upgrade your Python.Ú1ÚPIP_NO_INPUTú ÚPIP_EXISTS_ACTIONz2Could not find an activated virtualenv (required).zException information:)Úexc_infoz	ERROR: %szOperation cancelled by userz
Exception:Úno_indexé   )r7   rB   )9rK   ÚverboseÚquietÚ	verbosityÚlogÚloggingÚconfigÚ
dictConfigrP   r   rZ   Úlog_streamsÚlistÚfilterÚsysÚversion_infoÚwarningsÚwarnr   ÚRemovedInPip11WarningrE   r;   ÚenvironÚexists_actionr=   Úrequire_venvÚignore_require_venvr   ÚloggerÚcriticalÚexitr   Úsetrk   rb   ÚrunÚ
isinstanceÚintr   ÚstrÚdebugr   r
   r   r   r   r	   ÚKeyboardInterruptr   Údisable_pip_version_checkÚgetattrrJ   ÚminrB   r   ÚremoveHandlerr   )r.   rL   rH   Ú
root_levelÚlogger_classÚhandler_classÚoriginal_root_handlersÚstatusÚexcrI   Úhandlerr2   )rV   r3   Úmainr   s¾    










zCommand.main)F)NN)Ú__name__Ú
__module__Ú__qualname__r"   r   Úhiddenrˆ   r}   r4   rJ   rK   rž   r2   r2   r2   r3   r   +   s   

$c               @   s"   e Zd Zedd„ ƒZddd„ZdS )ÚRequirementCommandc          	   C   s˜  x<|j D ]2}x,t|d||||d�D ]}d|_|  |¡ q"W qW x0|D ](}	tj|	d|j|d�}d|_|  |¡ qDW x0|jD ]&}	tj|	|j|d�}d|_|  |¡ qxW x:|j	D ]0}x*t|||||d�D ]}d|_|  |¡ qÂW qªW |j
| _
|�s6|j�s6|j	�s6d|i}
|j�r*tdt|
d |j¡d	� ƒ‚ntd
|
 ƒ‚t�o^|  d¡�o^tj tjd ¡ d¡}|�r”tjddgtjdd…  }td d |¡¡ƒ‚dS )z?
        Marshal cmd line args into a requirement set.
        T)Ú
constraintÚfinderrH   rI   Úwheel_cacheN)r$   r¦   )r¥   rH   rI   r¦   r"   z^You must give at least one requirement to %(name)s (maybe you meant "pip %(name)s %(links)s"?)rq   )ÚlinkszLYou must give at least one requirement to %(name)s (see "pip help %(name)s")Úpipr   z-mrM   z3To modify pip, please run the following command:
{})Úconstraintsr   Ú	is_directÚadd_requirementr   Ú	from_lineÚisolated_modeÚ	editablesÚfrom_editableÚrequirementsÚrequire_hashesÚ
find_linksr	   Údictr=   r   Úhas_requirementr;   r<   Úbasenamer€   ÚargvÚ
startswithÚ
executablerX   )Úrequirement_setrL   rH   r¥   rI   r"   r¦   r]   Ú
req_to_addÚreqÚoptsÚshould_show_use_python_msgÚnew_commandr2   r2   r3   Úpopulate_requirement_set  s\    	

z+RequirementCommand.populate_requirement_setNc             C   sR   |j g|j }|jr*t dd |¡¡ g }t|j|j||j	|j
|j|||||d�S )zR
        Create a package finder appropriate to this requirement command.
        zIgnoring indexes: %sú,)r²   Úformat_controlÚ
index_urlsr>   Úallow_all_prereleasesÚprocess_dependency_linksrI   ÚplatformÚversionsÚabiÚimplementation)Ú	index_urlÚextra_index_urlsrt   r‰   r‘   r=   r   r²   rÁ   r>   ÚprerÄ   )r.   rH   rI   rÅ   Úpython_versionsrÇ   rÈ   rÂ   r2   r2   r3   Ú_build_package_finder^  s     z(RequirementCommand._build_package_finder)NNNN)rŸ   r    r¡   Ústaticmethodr¿   rÍ   r2   r2   r2   r3   r£     s   K r£   ):r%   Ú
__future__r   rz   Úlogging.configr(   r;   r€   r‚   Úpip._internalr   Úpip._internal.baseparserr   r   Úpip._internal.compatr   Úpip._internal.downloadr   Úpip._internal.exceptionsr   r	   r
   r   r   Úpip._internal.indexr   Úpip._internal.locationsr   Zpip._internal.req.req_filer   Zpip._internal.req.req_installr   Úpip._internal.status_codesr   r   r   r   r   Úpip._internal.utilsr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Úpip._internal.utils.outdatedr   Úpip._internal.utils.typingr   Útypingr   Ú__all__Ú	getLoggerrŸ   r‰   Úobjectr   r£   r2   r2   r2   r3   Ú<module>   s:   
 h