Hacked By AnonymousFox

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

�
��abc@@sddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZddlmZddlmZmZddlmZddlmZdd	lmZmZdd
lmZddlmZmZ ddl!m"Z"ddl#Z$dd
l%m&Z&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/m0Z0ddl1m2Z2m3Z3m4Z4m5Z5ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFddlGmHZHddlImJZJddlKmLZLddlMmNZNddlOmPZPddlQmRZRddlSmTZTddl#mUZUmVZVejWeX�ZYejZj[j\�Z]d�Z^d�Z_de`fd��YZad�Zbecd�ZddS( i(tabsolute_importN(t	sysconfig(tchange_root(t
FeedParser(t
pkg_resourcestsix(t
specifiers(tMarker(tInvalidRequirementtRequirement(tcanonicalize_name(tVersiontparse(tconfigparser(t
native_strt
get_stdlibtWINDOWS(tis_urlturl_to_pathtpath_to_urltis_archive_file(tInstallationErrortUninstallationError(tbin_pytrunning_under_virtualenvtPIP_DELETE_MARKER_FILENAMEtbin_user(tdisplay_pathtrmtreetask_path_existst
backup_dirtis_installable_dirtdist_in_usersitetdist_in_site_packagest
egg_link_pathtcall_subprocesstread_text_filetFakeFilet_make_build_dirt
ensure_dirtget_installed_versiontnormalize_patht
dist_is_local(tHashes(tRemovedInPip10Warning(t
indent_log(tSETUPTOOLS_SHIM(topen_spinner(tUninstallPathSet(tvcs(tmove_wheel_filestWheelcC@sOtjd|�}d}|r?|jd�}|jd�}n|}||fS(Ns^(.+)(\[[^\]]+\])$ii(tretmatchtNonetgroup(tpathtmtextrastpath_no_extras((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt
_strip_extras9scC@std�|D��S(Ncs@s|]}tj|�VqdS(N(Rt
safe_extra(t.0textra((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pys	<genexpr>Fs(tset(R:((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt_safe_extrasEstInstallRequirementcB@seZd'ed'eeed'ed'd'ed�Zed'd'ed'd'ed��Zed'ed'd'ed��Zd�Z	d�Z
d�Zed��Z
ed��Zd�Zd	�Zd
�Zed��Zed��Zed
��Zd�Zd�Zd�Zd�Zejd�Zed��Zd�Zed�Zed�Zd�Z d�Z!d�Z"d�Z#d'd�Z$gd'd'd'd�Z%d�Z&d�Z'd�Z(d(d'd �Z)d!�Z*ed"��Z+d'd'd'd#�Z,d$�Z-ed%��Z.ed&�Z/RS()c@s�d|_t�tj�r�yt���Wn�tk
r�tjj�krVd}n>d�kr�t	�fd�t
D��r�d}ntj�}t
d�|f��nXt�j�|_n�|_||_|
|_||_||_||_||_|_||_|	dk	r*|	|_n�o6�j|_d|_d|_d|_d|_d|_||_ d|_!d|_"t#|_$t#|_%d|_&|r�|ni|_'||_(t#|_)|
|_*dS(Ns%It looks like a path. Does it exist ?t=c3@s|]}|�kVqdS(N((R>top(treq(s7/usr/lib/python2.7/site-packages/pip/req/req_install.pys	<genexpr>Vss,= is not a valid operator. Did you mean == ?sInvalid requirement: '%s'
%s((+R:t
isinstanceRtstring_typesR	RtosR8tseptanyt	operatorst	tracebackt
format_excRRAREt
comes_fromt
constraintt
source_dirteditablet_wheel_cachetlinkt
original_linktas_eggR6tmarkerstmarkert_egg_info_pathtsatisfied_bytconflicts_witht_temp_build_dirt_ideal_build_dirtupdatetinstall_succeededtuninstalledtFalsetnothing_to_uninstallt
use_user_sitet
target_dirtoptionst	pycompiletpreparedtisolated(tselfRERNRPRQRSRUR]ReRVRgRdtwheel_cacheROtadd_msg((REs7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt__init__KsN	
	)																					cC@s�ddlm}t||�\}	}
}|
jd�rFt|
�}nd}||	|d|dtd||
�d|d|d	|r�|nid
|�}
|dk	r�t|�|
_n|
S(Ni(tLinksfile:RPRQRSRORgRdRi(	t	pip.indexRltparse_editablet
startswithRR6tTrueRAR:(tclsteditable_reqRNtdefault_vcsRgRdRiRORltnameturltextras_overrideRPtres((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt
from_editable�s 	cC@s�ddlm}t|�r%d}nd}||kry|j|d�\}}	|	j�}	|	sjd}	qt|	�}	nd}	|j�}d}
tjj	tjj
|��}d}d}
t|�r�||�}n�t|�\}}
tjj|�rOtjj
|ks|jd�rOt|�s:td|��n|t|��}nFt|�r�tjj|�s�tjd|�n|t|��}n|r,|jd	kr�tjd
|j�r�|ttjj	tjj
|j����}n|jr t|j�}d|j|jf}
q2|j}
n|}
|r>|ni}||
|d|d
|	d|d|d|d|�}|
r�t t!d|
�j"�|_"n|S(s�Creates an InstallRequirement from a name, which might be a
        requirement, directory containing 'setup.py', filename, or URL.
        i(Rls; t;it.s;Directory %r is not installable. File 'setup.py' not found.sARequirement %r looks like a filename, but the file does not existtfiles\.\./s%s==%sRSRVRgRdRiROtplaceholderN(#RmRlRtsplittstripR6RRHR8tnormpathtabspathR<tisdirRIRoRRRRtisfiletloggertwarningtschemeR4tsearchRutis_wheelR3tfilenameRttversiontegg_fragmentRAR	R:(RqRtRNRgRdRiRORlt
marker_sepRVRER8RSR:tptwheelRw((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt	from_line�sb		!

$-	cC@s�|jr;t|j�}|jrV|d|jj7}qVn|jrP|jjnd}|jdk	r�|dt|jj�7}n|jr�t	|jt
j�r�|j}n|jj�}|r�|d|7}q�n|S(Ns from %ss in %ss
 (from %s)(
REtstrRSRuR6RYRtlocationRNRFRRGt	from_path(RhtsRN((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt__str__�s			cC@s d|jjt|�|jfS(Ns<%s object: %s editable=%r>(t	__class__t__name__R�RQ(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt__repr__scC@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(RSR6tfind_requirementRRtcached_wheelRtR�tdebug(Rhtfindertupgradetrequire_hashestold_link((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt
populate_link	s	cC@s
|jjS(N(REt	specifier(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR�scC@s4|j}t|�dko3tt|��jdkS(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===(s==s===(R�tlentnexttitertoperator(RhR((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt	is_pinned!s	cC@sy|jdkrdSt|j�}|jrut|jtj�rL|j}n|jj�}|ru|d|7}qun|S(Ns->(RER6R�RNRFRRGR�(RhR�RN((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR�+s	cC@s�|jdk	r|jS|jdkrVtjjtjdd��|_||_|jS|j	rq|j
j�}n	|j
}tjj|�s�t
jd|�t|�ntjj||�S(Ns-buildspip-sCreating directory %s(R[R6RERHR8trealpathttempfiletmkdtempR\RQRttlowertexistsR�R�R&tjoin(Rht	build_dirRt((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytbuild_location8s				
cC@s�|jdk	rdS|j}d|_|j|j�}tjj|�rbtdt	|���nt
jd|t	|�t	|��tj
||�||_d|_||_d|_dS(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.egg_info_path 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 %s(RPR6R[R�R\RHR8R�RRR�R�tshutiltmoveRX(Rhtold_locationtnew_location((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt_correct_build_locationSs"
					cC@s,|jdkrdSttj|jj��S(N(RER6RRt	safe_nameRt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRtsscC@s+tjj|j|jr$|jjp'd�S(Nt(RHR8R�RPRStsubdirectory_fragment(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytsetup_py_dirys	cC@s�yddl}WnHtk
rZtd�dkr;d}ntj�}td|��nXtjj	|j
d�}tjr�t
|tj�r�|jtj��}n|S(Nit
setuptoolssPlease install setuptools.sWCould not import setuptools which is required to install from a source distribution.
%sssetup.py(R�tImportErrorR(R6RLRMRRHR8R�R�RtPY2RFt	text_typetencodetsystgetfilesystemencoding(RhR�Rjtsetup_py((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR�s
	cC@s�|jr%tjd|j|j�ntjd|j|j�t���t|j}tjd|g}|j	r�|dg7}n|dg}|j
r�g}n.tjj
|jd�}t|�ddg}t||d|jd	td
d�WdQX|jsott|j�d�t�r'd
}nd}tdj
|j�d||j�dg��|_|j�nbt|j�d�}t|jj�|kr�tjd|j|j||j�t|�|_ndS(Ns2Running setup.py (path:%s) egg_info for package %ss7Running setup.py (path:%s) egg_info for package from %ss-cs
--no-user-cfgtegg_infospip-egg-infos
--egg-basetcwdtshow_stdouttcommand_descspython setup.py egg_infoRs==s===R�tNamesuRunning setup.py (path:%s) egg_info for package %s produced metadata for project name %s. Fix your #egg=%s fragments.(RtR�R�R�RSR-R.R�t
executableRgRQRHR8R�R�R'R#R`RERFt
parse_versiontpkg_infoRR	R�R
R�(Rhtscripttbase_cmdtegg_info_cmdtegg_base_optiontegg_info_dirRDt
metadata_name((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytrun_egg_info�sN	

	
		

	
		

cC@sj|jdk	r5|jj|�s%dS|jj|�S|j|�}tjj|�sZdSt|�}|S(N(	RYR6thas_metadatatget_metadatat
egg_info_pathRHR8R�R$(RhR�tdata((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt
egg_info_data�s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	||f��nt|�d
kr�|jdd��ntjj||d
�|_ntjj|j|�S(Nspip-egg-infotbintpythontScriptss
Python.exettestttestss	.egg-infos$No files/directories in %s (from %s)itkeycS@s8|jtjj�tjjr3|jtjj�p6dS(Ni(tcountRHR8RItaltsep(tx((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt<lambda>
si(RXR6RQRPRHR8R�R�tlistdirtwalkR1tdirnamestremovetlisttlexistsR�textendtendswithRR�tsort(	RhR�tbaset	filenamestroottdirstfilestdirtf((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR��s>						*+	
cC@s]t�}|jd�}|s@tjdt|jd���n|j|pOd�|j�S(NsPKG-INFOsNo PKG-INFO file found in %sR�(RR�R�R�RR�tfeedtclose(RhR�R�((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR�s	s	\[(.*?)\]cC@s
t|j�S(N(R(Rt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytinstalled_version scC@sj|j�d}|jjrG||jjkrGtjd||j�ntjdt|j�||�dS(NR�s'Requested %s, but installing version %ss;Source in %s has version %s, which satisfies requirement %s(	R�RER�R�R�R�R�RRP(RhR�((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytassert_source_matches_version$s
cC@s�|js tjd|j�dS|jjdkr6dS|jsCdS|jjjdd�\}}tj	|�}|r�||jj�}|r�|j
|j�q�|j|j�ndS(Ns>Cannot update repository at %s; repository location is unknownR{t+i(RSR�R�RPR�R]RuR}R1tget_backendtobtaintexport(RhR�tvc_typeRutbackendtvcs_backend((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytupdate_editable5s"	
	cC@s�|j�s%td|jf��n|jp4|j}t|j�}t|�s{tj	d|j
|tj�t
|_dS|t�kr�tj	d|j
|�t
|_dSt|�}t|�}djtj|j��}|jo�tjj|j�}t|jdd�}|r�|jjd�r�|jj|�r�|j|j�|jd�r�x'|j d�j!�D]7}	tjj"tjj#|j|	��}
|j|
�qsWq
|jd	�r
|jd
�r�|j d
�}ng}x�g|j d	�j!�D]}|r||kr|^qD]^}
tjj#|j|
�}
|j|
�|j|
d�|j|
d�|j|
d
�q"Wq
n�|r�t$j%dj|j�t&�|j|�nQ|jjd�r2|j|j�tjj'|j�d}tjj#tjj(|j�d�}|j)|d|�n�|rw|jjd�rwx�t*j+j,|�D]}
|j|
�q]Wn�|r�t-|d��%}tjj.|j/�j0��}WdQX|j|�tjj#tjj(|�d�}|j)||j�ntj1d||j�|jd�r�|j2d�r�xz|j3d�D]f}t4|�rVt5}nt6}|jtjj#||��t7r;|jtjj#||�d�q;q;Wn|jd�r�t8j9r�i}n
idd6}t:j;|�}|j<t=|j>d���|j?d�r�x�|j@d�D]�\}}t4|�rAt5}nt6}|jtjj#||��t7r |jtjj#||�d�|jtjj#||�d�|jtjj#||�d�q q Wq�n|jA|�||_BdS( 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.Cannot uninstall requirement %s, not installeds1Not uninstalling %s at %s, outside environment %sNs<Not uninstalling %s at %s, as it is in the standard library.s{0}.egg-infoR8s	.egg-infosinstalled-files.txts
top_level.txtsnamespace_packages.txts.pys.pycs.pyos�Uninstalling a distutils installed project ({0}) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.s.eggiseasy-install.pths./s
.dist-infotrs)Not sure how to uninstall: %s - Check: %stscriptss.batsentry_points.txtRCt
delimiterstconsole_scriptss.exes
.exe.manifests
-script.py(RC(Ctcheck_if_existsRRtRYRZR)R�R*R�tinfoR�R�tprefixRpRaRR0R"tformatRtto_filenametproject_nameR�RHR8R�tgetattrt	_providerR6R�taddR�R�t
splitlinesRR�twarningstwarnR,R}tdirnametadd_pthtpipR�tuninstallation_pathstopentnormcasetreadlineR~R�tmetadata_isdirtmetadata_listdirR RRRRR�R
tSafeConfigParsertreadfpR%tget_metadata_linesthas_sectiontitemsR�R_(Rhtauto_confirmtdistt	dist_pathtpaths_to_removetdevelop_egg_linktdevelop_egg_link_egg_infotegg_info_existstdistutils_egg_infotinstalled_fileR8t
namespacesR�t
top_level_pkgteasy_install_eggteasy_install_pthtfhtlink_pointerR�tbin_dirRdtconfigRttvalue((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt	uninstallRs�

				"
		$
	
	*		
	'
cC@s0|jr|jj�ntjd|j�dS(Ns'Can't rollback %s, nothing uninstalled.(R_trollbackR�terrorRt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytrollback_uninstall�s	cC@s<|jr|jj�n|js8tjd|j�ndS(Ns%Can't commit %s, nothing uninstalled.(R_tcommitRaR�R*Rt(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytcommit_uninstall�s
		cC@s�t}d|j|j�df}tjj||�}tjj|�rtdt|�d�}|dkrxt	}q|dkr�t
jdt|��tj|�q|dkr�t
|�}t
jd	t|�t|��tj||�q|dkrtjd
�qn|r�tj|dtjdt�}tjjtjj|j��}xtj|�D]�\}	}
}d|
kr�|
jd�nxl|
D]d}tjj|	|�}|j||�}
tj|jd
|
d
�}d|_|j|d�q�Wxb|D]Z}|tkr!q	ntjj|	|�}|j||�}
|j||jd
|
�q	WqhW|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-infot/i�iR�sSaved %s(R.R/R0R1i�(!RpRtR�RHR8R�R�RRR`R�R�R�RR�R�R�texittzipfiletZipFiletZIP_DEFLATEDR
R�R�R�t_clean_zip_nametZipInfot
external_attrtwritestrRtwriteR�R�(RhR�tcreate_archivetarchive_nametarchive_pathtresponset	dest_filetzipR�tdirpathR�R�RRttzipdirR�((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytarchivesV		
	!
	
#
cC@s0|t|�d}|jtjjd�}|S(NiR3(R�treplaceRHR8RI(RhRtR�((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR85sc@s@|sd}n�jdk	r8t�fd�|D��StSdS(NR�c3@s(|]}�jji|d6�VqdS(R?N(RVtevaluate(R>R?(Rh(s7/usr/lib/python2.7/site-packages/pip/req/req_install.pys	<genexpr>Ds(R�(RVR6RJRp(Rhtextras_requested((Rhs7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt
match_markers=s	c@s"|jr#|j||d|�dS|jr�tjj|j�}tjj||j�|j	|jd�d|d|�t
|_dS||jj
dg�7}||jj
dg�7}|jr�t|�dg}ntjdd�}tjj|d	�}z�|j||�|�}	d
|jf}
t|
��:}t��(t|	|d|jdtd
|�WdQXWdQXtjj|�s�tjd|�dSt
|_|jr�dS�fd�}t|��]}
xS|
D]7}tjj |�}|j!d�r�||�}Pq�q�Wtj"d|�dSWdQXg}t|��k}
xa|
D]Y}|j#�}tjj$|�rz|tjj%7}n|j&tjj'||�|��qCWWdQXtjj|d�}t|d��!}
|
j(dj|�d�WdQXWdtjj|�rtj)|�nt*|�XdS(NR�R�tstrip_file_prefixtglobal_optionstinstall_optionss
--no-user-cfgs-recordspip-sinstall-record.txtsRunning setup.py install for %sR�R�tspinnersRecord file %s not foundc@s4�dkstjj|�r#|St�|�SdS(N(R6RHR8tisabsR(R8(R�(s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytprepend_root~ss	.egg-infos;Could not find .egg-info directory in install record for %ssinstalled-files.txtR/s
(+RQtinstall_editableR�R
R�t
wheel_versionRPtcheck_compatibilityRtR2RpR^RdtgetRgR�R�R�RHR8R�tget_install_argsR/R-R#R�R`R�R�R�RURRR�R�R~R�RItappendtrelpathR<R�R(RhRLRKR�R�RJR�t
temp_locationtrecord_filenametinstall_argstmsgRMROR�tlinet	directoryR�t	new_linesR�tinst_files_path((R�s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytinstallIs~					

			


	$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(RPR6R�(Rht
parent_dir((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytensure_has_source_dir�s
cC@stjdg}|jd�|jt|j�|t|�dd|g7}|jsf|dg7}n|dk	r�|d|g7}n|dk	r�|d|g7}n|jr�|dg7}n
|d	g7}t	�rd
t
j�}|dtj
jtjdd
||j�g7}n|S(Ns-us-cR_s--records#--single-version-externally-manageds--roots--prefixs	--compiles--no-compileR�s--install-headerstincludetsite(R�R�RUR.R�R�RUR6ReRRtget_python_versionRHR8R�R�Rt(RhRKRXR�R�RYt
py_ver_str((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRT�s(
		
	cC@s�|jrPtjjtjj|jt��rPtjd|j�t|j�nd|_|j
r�tjj|j
�r�t|j
�nd|_
dS(sVRemove the source files from this requirement, if they are marked
        for deletionsRemoving source in %sN(RPRHR8R�R�RR�R�RR6R[(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytremove_temporary_source�s	c
C@s�tjd|j�|jr2t|�dg}n|r]dj|�g}t|�|}nt��Ottj	dt
|jgt|�ddgt|�d|jdt
�WdQXt|_dS(	NsRunning setup.py develop for %ss
--no-user-cfgs--prefix={0}s-ctdevelops	--no-depsR�R�(R�R�RtRgR�R�R-R#R�R�R.R�R�R`RpR^(RhRLRKR�tprefix_param((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRP�s	
*
	
cC@s|jdkrtSyett|j��}d|_tjt|��|_|j	rw|jrw|j|_
d|_tSWn�tjk
r�tStj
k
rtj|jj�}|jr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(RER6R`R	R�RWRtget_distributionRYRQRZRptDistributionNotFoundtVersionConflictRtRbR RR!RRR�(Rht	no_markert
existing_dist((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR��s2				
cC@s|jo|jjS(N(RSR�(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR� scC@sPt|j|j|d|jd|jd|d|d|jd|jd|�dS(NtuserthomeR�R�ReRgRJ(R2RtRERbRcReRg(RhtwheeldirR�R�RJ((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyR2$s				cC@s�|jd�jd�}tjj|�}tj||�}tjjtjj|��d}tj	tjj|�d|d|�S(sAReturn a pkg_resources.Distribution built from self.egg_info_pathR�R3iRtmetadata(
R�trstripRHR8RRtPathMetadatatsplitexttbasenametDistribution(RhR�tbase_dirRqt	dist_name((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pytget_dist0s"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(tboolRdRS(Rh((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pythas_hash_options;scC@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()

        Rz(
RdRStcopyRSRTthasht
setdefaultt	hash_nameRUR+(Rhttrust_internettgood_hashesRS((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRzEs
"N((0R�t
__module__R6R`RpRktclassmethodRxR�R�R�R�tpropertyR�R�R�R�R�RtR�R�R�R�R�R�R4tcompilet_requirements_section_reR�R�R�R(R+R-RER8RIR_RaRTRfRPR�R�R2RyR|Rz(((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRBIs^	;		M			
	
		 	:		6		�			0	\			
	)	
cC@s.tjd|�}|r*|jd�}n|S(s2
        Strip req postfix ( -dev, 0.2, etc )
    s^(.*?)(?:-dev|-\d.*)$i(R4R�R7(RER5((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt_strip_postfix[scC@sPddlm}|}d}tjd|�}|rU|jd�}|jd�}n|}tjj|�r�tjj	tjj
|d��s�td|��nt|�}n|j
�jd�r
||�j}|r�||td	|j
��jfS||dfSnx;tD]3}|j
�jd
|�rd||f}PqqWd|kr�|r{tjd
t�|d|}q�td|��n|jdd�dj
�}	tj|	�sd|dj
gtjD]}
|
jd^q��d}t|��n||�j}|s$td��n|s=td|��nt|�|dfS(sParses an editable requirement into:
        - a requirement name
        - an URL
        - extras
        - editable options
    Accepted requirements:
        svn+http://blahblah@rev#egg=Foobar[baz]&subdirectory=version_subdir
        .[some_extra]
    i(Rls^(.+)(\[[^\]]+\])$iissetup.pys;Directory %r is not installable. File 'setup.py' not found.sfile:R|s%s:s%s+%sR�sD--default-vcs has been deprecated and will be removed in the future.sb%s should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+sFor --editable=%s only s, s+URLs is currently supporteds@Could not detect requirement name, please specify one with #egg=s@--editable=%s is not the right format; it must have #egg=PackageN(RmRlR6R4R5R7RHR8R�R�R�RRR�RoR�R	R:R1RRR,R}R�tbackendsRtR�(RrRsRlRuR:R9t
url_no_extrastpackage_nametversion_controlR�R�t
error_message((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyRngs`!


1
(et
__future__RtloggingRHR4R�R�R�RLRR5t	distutilsRtdistutils.utilRtemail.parserRtpip._vendorRRtpip._vendor.packagingRtpip._vendor.packaging.markersRt"pip._vendor.packaging.requirementsRR	tpip._vendor.packaging.utilsR
tpip._vendor.packaging.versionRRR�tpip._vendor.six.movesR
t	pip.wheelR
t
pip.compatRRRtpip.downloadRRRRtpip.exceptionsRRt
pip.locationsRRRRt	pip.utilsRRRRRR R!R"R#R$R%R&R'R(R)R*tpip.utils.hashesR+tpip.utils.deprecationR,tpip.utils.loggingR-tpip.utils.setuptools_buildR.tpip.utils.uiR/tpip.req.req_uninstallR0tpip.vcsR1R2R3t	getLoggerR�R�t	Specifiert
_operatorstkeysRKR<RAtobjectRBR�R6Rn(((s7/usr/lib/python2.7/site-packages/pip/req/req_install.pyt<module>sX""j		����	

Hacked By AnonymousFox1.0, Coded By AnonymousFox