????

Your IP : 216.73.216.152


Current Path : /usr/lib/python2.7/site-packages/pip/_internal/req/
Upload File :
Current File : //usr/lib/python2.7/site-packages/pip/_internal/req/req_install.pyc

�
}�\]c@@s�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZddl
mZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlm Z m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=ddl>m?Z?ddl@mAZAddlBmCZCddlDmEZEe?r�ddlFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNddlmOZOddlPmQZQddlRmSZSdd lTmUZUdd!lVmWZWdd"lXmYZYnejZe[�Z\d#e]fd$��YZ^dS(%i(tabsolute_importN(tchange_root(t
pkg_resourcestsix(tRequirement(tcanonicalize_name(tVersion(tparse(tPep517HookCaller(twheel(tNoOpBuildEnvironment(tInstallationError(tLink(tload_pyproject_tomltmake_pyproject_path(tUninstallPathSet(t
native_str(tHashes(t
indent_log(tPIP_DELETE_MARKER_FILENAME(t_make_build_dirtask_path_existst
backup_dirtcall_subprocesstdisplay_pathtdist_in_site_packagestdist_in_usersitet
ensure_dirtget_installed_versiontredact_password_from_urltrmtree(tget_metadata(tmake_setuptools_shim_args(t
TempDirectory(tMYPY_CHECK_RUNNING(topen_spinner(trunning_under_virtualenv(tvcs(tAnytDicttIterabletListtMappingtOptionaltSequencetUnion(tBuildEnvironment(t
WheelCache(t
PackageFinder(tDistribution(tSpecifierSet(tMarkertInstallRequirementcB@seZdZd(ed(ed(d(ed(d(ed)d�Zd�Zd�Zd�Z	d�Z
ed��Zed��Z
ed��Zed	��Zd(d
�Zed��Zed�Zd
�Zd�Zd�Zd�Zd�Zed��Zd(d(d(eeed�Zed��Zed��Zed��Zd�Zd�Zd�Zd�Z ed��Z!ed��Z"d�Z#d�Z$d�Z%d*d(d �Z&ed!�Z'eeed"�Z(d#�Z)d$�Z*d%�Z+d(d(d(d(eeed&�Z,d'�Z-RS(+s�
    Represents something that may be installed later on, may have information
    about where to fetch the relevant requirement and also contains logic for
    installing the said requirement.
    cC@s�|dks't|t�s't|��||_||_||_|dkrZd|_n!tj	j
tj	j|��|_||_||_
|dkr�|r�|jr�t|j�}n||_|_|
r�|
|_n+|r�d�|jD�|_nt�|_|dkr%|r%|j}n||_d|_d|_d|_tdd�|_d|_||_d|_d|_|
r�|
ni|_t |_!t |_"|	|_#t$�|_%d|_&d|_'g|_(d|_)||_*dS(NcS@sh|]}tj|��qS((Rt
safe_extra(t.0textra((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pys	<setcomp>ds	tkinds	req-build(+tNonet
isinstanceRtAssertionErrortreqt
comes_fromt
constraintt
source_dirtostpathtnormpathtabspathteditablet_wheel_cacheturlRtlinkt
original_linktextrastsettmarkertmarkerst_egg_info_pathtsatisfied_bytconflicts_withR!t_temp_build_dirt_ideal_build_dirtupdatetinstall_succeededtuninstalled_pathsettoptionstFalsetpreparedt	is_directtisolatedR
t	build_envtmetadata_directorytpyproject_requirestrequirements_to_checktpep517_backendt
use_pep517(tselfR<R=R?RDRGRRRLR_RYRUtwheel_cacheR>RI((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt__init__?sL'			!																	cC@s�|jrAt|j�}|jre|dt|jj�7}qen$|jr_t|jj�}nd}|jdk	r�|dt|jj�7}n|j	r�t
|j	tj�r�|j	}n|j	j
�}|r�|d|7}q�n|S(Ns from %ss<InstallRequirement>s in %ss
 (from %s)(R<tstrRGRRFRNR9RtlocationR=R:Rtstring_typest	from_path(R`tsR=((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt__str__�s 		 		cC@s d|jjt|�|jfS(Ns<%s object: %s editable=%r>(t	__class__t__name__RcRD(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt__repr__�sc@sYt|��t��}�fd�t|�D�}djd|jjddj|��S(s>An un-tested helper for getting state, for debugging.
        c3@s%|]}dj|�|�VqdS(s{}={!r}N(tformat(R6tattr(t
attributes(s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pys	<genexpr>�ss<{name} object: {{{state}}}>tnametstates, (tvarstsortedRlRiRjtjoin(R`tnamesRp((Rns</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytformat_debug�s	cC@s�|jdkr'|j||�|_n|jdk	r�|r�|j}|jj|j|j�|_||jkr�tjd|j�q�ndS(sEnsure that if a link can be found for this, that it is found.

        Note that self.link may still be None - if Upgrade is False and the
        requirement is already installed.

        If require_hashes is True, don't use the wheel cache, because cached
        wheels, always built locally, have different hashes than the files
        downloaded from the index server and thus throw false hash mismatches.
        Furthermore, cached wheels at present have undeterministic contents due
        to file modification times.
        sUsing cached wheel link: %sN(RGR9tfind_requirementREtgetRotloggertdebug(R`tfindertupgradetrequire_hashestold_link((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt
populate_link�s
	cC@s,|jdkrdSttj|jj��S(N(R<R9RRt	safe_nameRo(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyRo�scC@s
|jjS(N(R<t	specifier(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR��scC@s:|j}t|�dko9tt|��jddhkS(s�Return whether I am pinned to an exact version.

        For example, some-package==1.2 is pinned; some-package>1.2 is not.
        is==s===(R�tlentnexttitertoperator(R`t
specifiers((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt	is_pinned�s	cC@s
t|j�S(N(RRo(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytinstalled_version�sc@s@|sd}n�jdk	r8t�fd�|D��StSdS(Ntc3@s(|]}�jji|d6�VqdS(R7N(RLtevaluate(R6R7(R`(s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pys	<genexpr>�s(R�(RLR9tanytTrue(R`textras_requested((R`s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt
match_markers�s	cC@st|jjdi��S(s�Return whether any known-good hashes are specified as options.

        These activate --require-hashes mode; hashes specified as part of a
        URL do not.

        thashes(tboolRURw(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pythas_hash_optionss	cC@sn|jjdi�j�}|r*|jn|j}|rd|jrd|j|jg�j|j�nt	|�S(s�Return a hash-comparer that considers my option- and URL-based
        hashes to be known-good.

        Hashes in URLs--ones embedded in the requirements file, not ones
        downloaded from an index server--are almost peers with ones from
        flags. They satisfy --require-hashes (whether it was implicitly or
        explicitly activated) but do not activate it. md5 and sha224 are not
        allowed in flags, which should nudge people toward good algos. We
        always OR all hashes together, even ones from URLs.

        :param trust_internet: Whether to trust URL-based (#md5=...) hashes
            downloaded from the internet, as by populate_link()

        R�(
RURwtcopyRGRHthasht
setdefaultt	hash_nametappendR(R`ttrust_internettgood_hashesRG((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR�s
"cC@sy|jdkrdSt|j�}|jrut|jtj�rL|j}n|jj�}|ru|d|7}qun|S(s@Format a nice indicator to show where this "comes from"
        s->N(R<R9RcR=R:RReRf(R`RgR=((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyRf%s	cC@s�|dk	st�|jjdk	r.|jjS|jdkr]|jj�||_|jjS|jrx|jj	�}n	|j}t
jj|�s�tj
d|�t|�nt
jj||�S(NsCreating directory %s(R9R;RPRAR<tcreateRQRDRotlowerR@texistsRxRyRRs(R`t	build_dirRo((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytbuild_location5s

	
		
cC@s�|jdk	rdS|jdk	s(t�|jjs:t�|jdk	rU|jjs[t�|jj}d|j_|j|j�}tjj	|�r�t
dt|���ntj
d|t|�t|��tj||�||j_d|_tjjtjj|��|_d|_|jr�|j}tjj|d|�}tjj||�}tjjtjj|��}||_ndS(s�Move self._temp_build_dir to self._ideal_build_dir/self.req.name

        For some requirements (e.g. a path to a directory), the name of the
        package is not available until we run egg_info, so the build_location
        will return a temporary directory and store the _ideal_build_dir.

        This is only called by self.run_egg_info to fix the temporary build
        directory.
        Ns<A package already exists in %s; please remove it to continues,Moving package %s from %s to new location %ststart(R?R9R<R;RPRARQR�R@R�RRRxRytshutiltmoveRBRCRMR[trelpathRs(R`told_locationtnew_locationtold_metatreltnew_meta((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt_correct_build_locationQs6	!			cC@sw|jrPtjjtjj|jt��rPtjd|j�t|j�nd|_|j
j�|jj�dS(sVRemove the source files from this requirement, if they are marked
        for deletionsRemoving source in %sN(
R?R@RAR�RsRRxRyRR9RPtcleanupRZ(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytremove_temporary_source|s	
cC@s|jdkrtSyett|j��}d|_tjt|��|_|j	rw|jrw|j|_
d|_tSWn�tjk
r�tStj
k
rtj|jj�}|r	t|�r�||_
qt�rt|�rtd|j|jf��qq||_
nXtS(s�Find an installed distribution that satisfies or conflicts
        with this requirement, and set self.satisfied_by or
        self.conflicts_with appropriately.
        sVWill not install to the user site because it will lack sys.path precedence to %s in %sN(R<R9RVRRcRKRtget_distributionRNRDROR�tDistributionNotFoundtVersionConflictRoRR$RRtproject_nameRd(R`t
use_user_sitet	no_markert
existing_dist((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytcheck_if_exists�s2			
cC@s|js
tS|jjS(N(RGRVtis_wheel(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR��s	cC@sJtj|j|j|d|d|d|d|d|d|jd|�dS(Ntuserthometroottprefixt	pycompileRYtwarn_script_location(R	tmove_wheel_filesRoR<RY(R`twheeldirR�R�R�R�R�R�((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR��s	cC@s+tjj|j|jr$|jjp'd�S(NR�(R@RARsR?RGtsubdirectory_fragment(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytsetup_py_dir�s	cC@sh|jstd|��tjj|jd�}tjrdt|tj	�rd|j
tj��}n|S(NsNo source dir for %sssetup.py(
R?R;R@RARsR�RtPY2R:t	text_typetencodetsystgetfilesystemencoding(R`tsetup_py((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt
setup_py_path�s
cC@s&|jstd|��t|j�S(NsNo source dir for %s(R?R;RR�(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytpyproject_toml_path�sc@s�t�j�j�jt���}|dk	�_�js@dS|\}}}|�_|�_t�j	|��_
d�_dd�fd�}|�j
_dS(sALoad the pyproject.toml file.

        After calling this routine, all of the attributes related to PEP 517
        processing for this requirement have been set. In particular, the
        use_pep517 attribute can be used to determine whether we should
        follow the PEP 517 or legacy (setup.py) code path.
        NR�c@sAt�j��#}t|d|d|d|�WdQXd�_dS(Ntcwdt
extra_environtspinnerR�(R#tspin_messageR(tcmdR�R�R�(R`(s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytrunner	s
(
R
R_R�R�RcR9R]R\RR�R^R�t_subprocess_runner(R`tpyproject_toml_datatrequirestbackendtcheckR�((R`s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR
�s 					cC@s|jst�t��%|jr/|j�n
|j�WdQX|js�tt|j	d�t
�rmd}nd}tdj|j	d||j	dg��|_|j
�nYt|j	d�}t|jj�|krtjd|j||j�t|�|_ndS(s�Ensure that project metadata is available.

        Under PEP 517, call the backend hook to prepare the metadata.
        Under legacy processing, call setup.py egg-info.
        NRs==s===R�tNameseGenerating metadata for package %s produced metadata for project name %s. Fix your #egg=%s fragments.(R?R;RR_tprepare_pep517_metadatatrun_egg_infoR<R:t
parse_versiontmetadataRRRsR�RRoRxtwarning(R`topt
metadata_name((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytprepare_metadatas*
	
		

cC@s�|jdk	st�tjj|jd�}t|�|j�&|j}d|_	|j
|�}WdQXtjj||�|_dS(Nspip-wheel-metadatasPreparing wheel metadata(R^R9R;R@RARsR�RRZR�t prepare_metadata_for_build_wheelR[(R`tmetadata_dirR�tdistinfo_dir((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR�As		

		c
C@s�|jr%tjd|j|j�ntjd|j|j�t|j�}|jrf|dg7}n|dg}|jr�g}n.tj	j
|jd�}t|�ddg}|j
�"t||d|jdd	�WdQXdS(
Ns2Running setup.py (path:%s) egg_info for package %ss7Running setup.py (path:%s) egg_info for package from %ss
--no-user-cfgtegg_infospip-egg-infos
--egg-baseR�tcommand_descspython setup.py egg_info(RoRxRyR�RGR RYRDR@RARsR�RRZR(R`tbase_cmdtegg_info_cmdtegg_base_optiontegg_info_dir((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR�Ws*		
		


	c	C@s|jdkr|jr$|j}ntjj|jd�}tj|�}|jr�g}xtj	|�D]\}}}x-t
jD]"}||kr�|j|�q�q�Wx�t
|�D]�}tjjtjj||dd��s
tjjtjj||dd��r|j|�q�|dks2|dkr�|j|�q�q�W|jg|D]}tjj||�^qS�qjWg|D]}|jd�r�|^q�}n|s�td	|��nt|�d
kr�|jdd��ntjj||d
�|_n|jS(Nspip-egg-infotbintpythontScriptss
Python.exettestttestss	.egg-infos!Files/directories not found in %sitkeycS@s8|jtjj�tjjr3|jtjj�p6dS(Ni(tcountR@RAtseptaltsep(tx((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt<lambda>�si(RMR9RDR?R@RARsR�tlistdirtwalkR%tdirnamestremovetlisttlexistsR�textendtendswithRR�tsort(R`tbaset	filenamesR�tdirstfilestdirtf((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt
egg_info_pathvs>						*+	
cC@s.t|d�s't|j��|_n|jS(Nt	_metadata(thasattrRtget_distR�(R`((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR��scC@s�|jr|j}tj}n!|jjtjj�}tj}tjj	|�\}}tjj
|�d}tj||�}||d|d|�S(s8Return a pkg_resources.Distribution for this requirementiR�R�(R[RtDistInfoDistributionR�trstripR@RAR�R1tsplittsplitexttPathMetadata(R`tdist_dirtdist_clstbase_dirt
dist_dir_namet	dist_nameR�((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR��s			cC@ss|jst�|jd}|jjrP||jjkrPtjd||�ntjdt|j�||�dS(Ntversions'Requested %s, but installing version %ss;Source in %s has version %s, which satisfies requirement %s(	R?R;R�R<R�RxR�RyR(R`R	((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytassert_source_matches_version�s

cC@s+|jdkr$|j|�|_n|jS(sAEnsure that a source_dir is set.

        This will create a temporary build dir if the name of the requirement
        isn't known yet.

        :param parent_dir: The ideal pip parent_dir for the source_dir.
            Generally src_dir for editables and build_dir for sdists.
        :return: self.source_dir
        N(R?R9R�(R`t
parent_dir((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytensure_has_source_dir�scC@s�tjd|j�|jr2t|�dg}n|r]dj|�g}t|�|}nt��O|j�?tt	|j
�t|�ddgt|�d|j�WdQXWdQXt|_
dS(NsRunning setup.py develop for %ss
--no-user-cfgs--prefix={}tdevelops	--no-depsR�(RxtinfoRoRYR�RlRRZRR R�R�R�RS(R`tinstall_optionstglobal_optionsR�tprefix_param((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytinstall_editable�s	

 
cC@s#|js tjd|j�dS|js/t�|js>t�|jjdkrTdSd|jjks|td|jj��|js�dS|jjj	dd�\}}t
j|�}|r|jj}|r�|j|jd|�q|j
|jd|�ndstd|j|f��dS(	Ns>Cannot update repository at %s; repository location is unknowntfilet+sbad url: %riRFis+Unexpected version control type (in %s): %s(RGRxRyR?RDR;tschemeRFRRRR%tget_backendtobtaintexport(R`Rtvc_typeRFtvcs_backend((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytupdate_editables,	
(		cC@s[|j|�s&tjd|j�dS|jp5|j}tj|�}|j	||�|S(s�
        Uninstall the distribution currently satisfying this requirement.

        Prompts before removing or modifying files unless
        ``auto_confirm`` is True.

        Refuses to delete or modify files outside of ``sys.prefix`` -
        thus uninstallation within a virtual environment can only
        modify that virtual environment, even if the virtualenv is
        linked to global site-packages.

        s#Skipping %s as it is not installed.N(
R�RxR�RoR9RNRORt	from_distR�(R`tauto_confirmtverboseR�tdistRT((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt	uninstall*scC@s_|j|tjj�s/td||f��|t|�d}|jtjjd�}|S(Ns$name %r doesn't start with prefix %rit/(t
startswithR@RAR�R;R�treplace(R`RoR�((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt_clean_zip_nameBs
cC@s6tjj||�}|j||�}|jd|S(NR!(R@RARsR$Ro(R`RAt	parentdirtrootdirRo((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt_get_archive_nameKscC@s�|jst�t}d|j|jdf}tjj||�}tjj|�rt	dt
|�d�}|dkr�t}q|dkr�tj
dt
|��tj|�q|dkrt|�}tj
d	t
|�t
|��tj||�q|dkrtjd
�qn|r�tj|dtjdt�}tjjtjj|j��}x�tj|�D]�\}	}
}d|
kr�|
jd�nxU|
D]M}|j|d
|	d|�}
tj|
d�}d|_|j|d�q�Wx`|D]X}|tkrq�n|j|d
|	d|�}tjj|	|�}|j ||�q�WqtW|j!�tj"dt
|��ndS(Ns	%s-%s.zipR	s8The file %s exists. (i)gnore, (w)ipe, (b)ackup, (a)bort titwtbtasDeleting %ssBacking up %s to %si����t
allowZip64spip-egg-infoR%R&R!i�iR�sSaved %s(R(R)R*R+i�(#R?R;R�RoR�R@RARsR�RRRVRxR�R�RR�R�R�texittzipfiletZipFiletZIP_DEFLATEDtnormcaseRCR�R�R'tZipInfot
external_attrtwritestrRtwritetcloseR(R`R�tcreate_archivetarchive_nametarchive_pathtresponset	dest_filetzipR�tdirpathR�R�tdirnametdir_arcnametzipdirtfilenametfile_arcname((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytarchiveSs^		
	!
		
	
c	@s5|dk	r|ng}|jr;|j||d|�dS|jr�tj|j�}	tj|	|j�|j	|jd�d|d|d|d|d|�t
|_dSt|�|j
jdg�}t|�|j
jdg�}|jr|d	g}ntd
d��}
tjj|
jd�}|j||�||�}d
|jf}
t|
��D}t��2|j�"t||d|jd|�WdQXWdQXWdQXtjj|�s�tjd|�dSt
|_�fd�}t|��]}xS|D]7}tjj|�}|jd�r�||�}Pq�q�Wtj d|�dSWdQXg}t|��k}xa|D]Y}|j!�}tjj"|�r�|tjj#7}n|j$tjj%||�|��qmWWdQX|j&�t'|�tjj|d�}t|d��!}|j(dj|�d�WdQXWdQXdS(NR�R�R�R�R�R�RRs
--no-user-cfgR8trecordsinstall-record.txtsRunning setup.py install for %sR�R�sRecord file %s not foundc@s4�dkstjj|�r#|St�|�SdS(N(R9R@RAtisabsR(RA(R�(s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytprepend_root�ss	.egg-infos;Could not find .egg-info directory in install record for %ssinstalled-files.txtR)s
()R9RDRR�R	t
wheel_versionR?tcheck_compatibilityRoR�R�RSR�RURwRYR!R@RARstget_install_argsR#RRZRR�R�RxRytopenR>R�R�tstriptisdirR�R�R�R�RR5(R`RRR�R�R�R�R�R�R	ttemp_dirtrecord_filenametinstall_argstmsgR�RFR�tlinet	directoryR�t	new_linesRAtinst_files_path((R�s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pytinstall�sx		
				


		


&

cC@s�t|jdt�}|t|�dd|g7}|dg7}|dk	r^|d|g7}n|dk	r}|d|g7}n|r�|dg7}n
|dg7}t�r�d	tj�}|d
tj	j
tjdd||j
�g7}n|S(
Ntunbuffered_outputRUs--records#--single-version-externally-manageds--roots--prefixs	--compiles--no-compileR�s--install-headerstincludetsite(R R�R�R�R9R$t	sysconfigtget_python_versionR@RARsR�R�Ro(R`RRNR�R�R�ROt
py_ver_str((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyRI�s$		

	N(((.Rjt
__module__t__doc__R9RVR�RbRhRkRuR~tpropertyRoR�R�R�R�R�R�RfR�R�R�R�R�R�R�R�R�R
R�R�R�R�R�R�R
RRRR R$R'RCRURI(((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyR48s~O				
			+		+

	.	'		5							7\(_t
__future__RtloggingR@R�R�RYR.tdistutils.utilRtpip._vendorRRt"pip._vendor.packaging.requirementsRtpip._vendor.packaging.utilsRtpip._vendor.packaging.versionRRR�tpip._vendor.pep517.wrappersRt
pip._internalR	tpip._internal.build_envR
tpip._internal.exceptionsRtpip._internal.models.linkRtpip._internal.pyprojectR
Rtpip._internal.req.req_uninstallRtpip._internal.utils.compatRtpip._internal.utils.hashesRtpip._internal.utils.loggingRt pip._internal.utils.marker_filesRtpip._internal.utils.miscRRRRRRRRRRRtpip._internal.utils.packagingRt$pip._internal.utils.setuptools_buildR tpip._internal.utils.temp_dirR!tpip._internal.utils.typingR"tpip._internal.utils.uiR#tpip._internal.utils.virtualenvR$tpip._internal.vcsR%ttypingR&R'R(R)R*R+R,R-R.tpip._internal.cacheR/tpip._internal.indexR0tpip._vendor.pkg_resourcesR1t pip._vendor.packaging.specifiersR2tpip._vendor.packaging.markersR3t	getLoggerRjRxtobjectR4(((s</tmp/pip-install-ewDPok/pip/pip/_internal/req/req_install.pyt<module>sRL: