Viewing File: /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyo

ó
“tÆ_c@sdZddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZmZmZmZddlmZddlmZdd	lmZdd
lmZmZmZmZddlmZddl m!Z!dd
l"m#Z#ddl$m%Z%e!rtddl&m'Z'm(Z(m)Z)m*Z*ddl+m,Z,ddlm-Z-ddl.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7ddlm8Z8ere,die'e9e(e9ge(e9fd6e:d6de;ƒZ<qte,die'e9e9gdfd6e'e9e(e9ge(e9fd6e:d6e:d6de;ƒZ<nej>e?ƒZ@d„ZAd„ZBd eCfd!„ƒYZDddd"„ZEd#„ZFd$„ZGddd%„ZHddd&„ZId'„ZJd(„ZKd)eCfd*„ƒYZLdS(+s)Prepares a distribution for installation
iÿÿÿÿN(tPY2(t)make_distribution_for_install_requirement(tInstalledDistribution(tDirectoryUrlHashUnsupportedtHashMismatchtHashUnpinnedtInstallationErrortNetworkConnectionErrortPreviousBuildDirErrortVcsHashUnsupported(tcopy2_fixed(t
MissingHashes(t
indent_log(tdisplay_paththide_urltpath_to_displaytrmtree(t
TempDirectory(tMYPY_CHECK_RUNNING(tunpack_file(tvcs(tCallabletListtOptionaltTuple(t	TypedDict(tAbstractDistribution(t
PackageFinder(tLink(t
Downloader(tInstallRequirement(tRequirementTracker(tHashestCopytreeKwargstignoretsymlinksttotalt
copy_functiontignore_dangling_symlinkscCs6t|ƒ}|j|ƒ|j||ƒWdQX|S(s-Prepare a distribution for installation.
    N(Rttracktprepare_distribution_metadata(treqtreq_trackertfindertbuild_isolationt
abstract_dist((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_get_prepared_distributionPs	cCs2tj|jƒ}|j|dt|jƒƒdS(Nturl(Rtget_backend_for_schemetschemetunpackRR/(tlinktlocationtvcs_backend((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pytunpack_vcs_link_stFilecBseZd„ZRS(cCs||_||_dS(N(tpathtcontent_type(tselfR8R9((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt__init__gs	(t__name__t
__module__R;(((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyR7fscCsƒtdddtƒ}d}|r6t|||ƒ}n|rX|}tj|ƒd}nt|||j|ƒ\}}t||ƒS(NtkindR2tglobally_managedi(	RtTruetNonet_check_download_dirt	mimetypest
guess_typet_download_http_urlR8R7(R3t
downloadertdownload_dirthashesttemp_dirtalready_downloaded_patht	from_pathR9((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pytget_http_urlmscCsVyt||ƒWn>tjk
rQ}tjdt|ƒt|ƒt|ƒƒnXdS(sÆCopying special files is not supported, but as a convenience to users
    we skip errors copying them. This supports tools that may create e.g.
    socket files in the project source directory.
    s>Ignoring special file error '%s' encountered copying %s to %s.N(R
tshutiltSpecialFileErrortloggertwarningtstrR(tsrctdestte((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_copy2_ignoring_special_filesˆs		csŠtjj|ƒ}tjj|ƒ‰tjj|ƒ‰‡‡‡fd†}td|dtƒ}tsst|d<nt	j
ˆ||dS(NcsQg}|ˆkr%|ddg7}ntjj|ƒˆkrM|ˆg7}n|S(Ns.toxs.nox(tosR8tabspath(tdtnamestskipped(tsourcettarget_basenamettarget_dirname(sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyR"£sR"R#R%(RVR8RWtbasenametdirnametdictR@RRURMtcopytree(R[ttargetttarget_abspathR"tkwargs((R[R\R]sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_copy_source_trees
cCsod}|r!t|||ƒ}n|r0|}n	|j}|rO|j|ƒntj|ƒd}t||ƒS(s,Get file and optionally check its hash.
    iN(RARBt	file_pathtcheck_against_pathRCRDR7(R3RGRHRJRKR9((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pytget_file_url½s			cCs¸|jrt||ƒdS|jƒrYtjj|ƒrEt|ƒnt|j	|ƒdS|j
rzt||d|ƒ}nt|||d|ƒ}|j
s´t|j||jƒn|S(s_Unpack link into location, downloading if required.

    :param hashes: A Hashes object, one of whose embedded hashes must match,
        or HashMismatch will be raised. If the Hashes is empty, no matches are
        required, and unhashable types of requirements (like VCS ones, which
        would ordinarily raise HashUnsupported) are allowed.
    RHN(tis_vcsR6RAtis_existing_dirRVR8tisdirRReRftis_fileRhRLtis_wheelRR9(R3R4RFRGRHtfile((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt
unpack_urlÞs$	

			cCs||ƒ}tjj||jƒ}t|dƒ(}x|jD]}|j|ƒq@WWdQX|rs|j|ƒn||jj	j
ddƒfS(s6Download link url into temp_dir using provided sessiontwbNscontent-typet(RVR8tjointfilenametopentchunkstwriteRgtresponsetheaderstget(R3RFRIRHtdownloadRftcontent_filetchunk((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyREscCsŽtjj||jƒ}tjj|ƒs.dStjd|ƒ|rŠy|j|ƒWqŠt	k
r†tj
d|ƒtj|ƒdSXn|S(s† Check download_dir for previously downloaded file with correct hash
        If a correct file is found return its path else None
    sFile was already downloaded %ss;Previously-downloaded file %s has bad hash. Re-downloading.N(RVR8RrRstexistsRAROtinfoRgRRPtunlink(R3RGRHt
download_path((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyRB#s

tRequirementPreparercBs_eZdZd„Zed„ƒZd„Zd„Zd„Ze	d„Z
d„Zd„ZRS(	sPrepares a Requirement
    cCsqtt|ƒjƒ||_||_||_||_||_||_||_	||_
|	|_|
|_dS(N(
tsuperRR;tsrc_dirt	build_dirR*RFR+RGtwheel_download_dirR,trequire_hashest
use_user_site(R:R„RGRƒR…R,R*RFR+R†R‡((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyR;As									cCsO|js
tStjj|jƒr&tStjdƒtdj	|jƒƒ‚dS(Ns!Could not find download directorys0Could not find or access download directory '{}'(
RGtFalseRVR8R}R@ROtcriticalRtformat(R:((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_download_should_savens	
cCsN|jjr1|jj}tjdt|ƒƒntjd|jpF|ƒdS(sLog the way the link prepared.s
Processing %ss
Collecting %sN(R3RlRfROR~R
R)(R:R)R8((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_log_preparing_link|scCsr|jjrdS|j|jdtd|ƒtjjtjj|j	dƒƒrnt
dj||j	ƒƒ‚ndS(s1Ensure source_dir of a linked InstallRequirement.Nt
autodeletetparallel_buildsssetup.pysípip can't proceed with requirements '{}' due to apre-existing build directory ({}). This is likely due to a previous installation that failed . pip is being responsible and not assuming it can delete this. Please delete it and try again.(R3Rmtensure_has_source_dirR„R@RVR8R}Rrt
source_dirRRŠ(R:R)RGRŽ((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_ensure_link_req_src_dir…s	$cCsŠ|js|jdtƒS|jjr1tƒ‚n|jjƒrLtƒ‚n|jdkrq|j
rqtƒ‚n|jdtƒp‰t
ƒS(Nttrust_internet(R†RHR@R3RiR	RjRt
original_linkRAt	is_pinnedRRˆR(R:R)((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt_get_linked_req_hashes£s	c

Cs¨|j}|j|ƒ|jr4|jr4|j}n	|j}tƒ\|j|||ƒy.t||j|j	|d|j
|ƒƒ}Wn.tk
r¸}tdj
|||ƒƒ‚nX|rÎ|j|_nt||j|j|jƒ}|rv|jƒrtjdƒqv|rvtjj||jƒ}tjj|ƒsstj|j|ƒt|ƒ}	tjd|	ƒqsqvn|jrž|jrž|j |jƒqžnWdQX|S(s3Prepare a requirement to be obtained from req.link.RHsDCould not install requirement {} because of HTTP error {} for URL {}s*Link is a directory, ignoring download_dirsSaved %sN(!R3RŒRmR…RGRR‘RoRRFR•RRRŠR8tlocal_file_pathR.R*R+R,RjROR~RVRrRsR}RMtcopyR
R‹Ritarchive(
R:R)RŽR3RGt
local_filetexcR-tdownload_locationR€((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pytprepare_linked_requirementÄsB	
	
			c	Cs°tjd|ƒtƒ‘|jr;tdj|ƒƒ‚n|j|jƒ|j|j	ƒt
||j|j|j
ƒ}|j	r–|j|jƒn|j|jƒWdQX|S(s(Prepare an editable requirement
        sObtaining %ssoThe editable requirement {} cannot be installed when requiring hashes, because there is no single file to hash.N(ROR~RR†RRŠRRƒtupdate_editableR‹R.R*R+R,R˜RGtcheck_if_existsR‡(R:R)R-((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pytprepare_editable_requirementøs	
		cCsUtjd|||jjƒtƒ*|jr?tjdƒnt|ƒ}WdQX|S(s1Prepare an already-installed requirement
        sRequirement %s: %s (%s)s§Since it is already installed, we are trusting this package without checking its hash. To ensure a completely repeatable environment, install into an empty virtualenv.N(ROR~tsatisfied_bytversionRR†tdebugR(R:R)tskip_reasonR-((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pytprepare_installed_requirements

	
(
R<R=t__doc__R;tpropertyR‹RŒR‘R•RˆRœRŸR¤(((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyR=s	-				!4	(MR¥tloggingRCRVRMtpip._vendor.sixRtpip._internal.distributionsRt%pip._internal.distributions.installedRtpip._internal.exceptionsRRRRRRR	tpip._internal.utils.filesystemR
tpip._internal.utils.hashesRtpip._internal.utils.loggingRtpip._internal.utils.miscR
RRRtpip._internal.utils.temp_dirRtpip._internal.utils.typingRtpip._internal.utils.unpackingRtpip._internal.vcsRttypingRRRRtmypy_extensionsRRt"pip._internal.index.package_finderRtpip._internal.models.linkRtpip._internal.network.downloadRtpip._internal.req.req_installRtpip._internal.req.req_trackerRR RQtboolRˆR!RAt	getLoggerR<ROR.R6tobjectR7RLRUReRhRoRERBR(((sQ/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/operations/prepare.pyt<module>sp4	""

		
		""+		
Back to Directory File Manager