Commit 8cb89934 authored by Julien Muchembled's avatar Julien Muchembled Committed by Xavier Thompson

Install egg from wheel only if explictly required

Egg is install from wheel the requested version ends with :whl

This replaces:
	<removed>
parent 5a505a07
...@@ -39,6 +39,8 @@ import tempfile ...@@ -39,6 +39,8 @@ import tempfile
import zc.buildout import zc.buildout
import warnings import warnings
WHL_DIST = pkg_resources.EGG_DIST + 1
warnings.filterwarnings( warnings.filterwarnings(
'ignore', '.+is being parsed as a legacy, non PEP 440, version') 'ignore', '.+is being parsed as a legacy, non PEP 440, version')
...@@ -437,9 +439,10 @@ class Installer: ...@@ -437,9 +439,10 @@ class Installer:
return None return None
# Filter the available dists for the requirement and source flag # Filter the available dists for the requirement and source flag
wheel = getattr(requirement, 'wheel', False)
dists = [dist for dist in index[requirement.project_name] dists = [dist for dist in index[requirement.project_name]
if ((dist in requirement) if ((dist in requirement)
and and (dist.precedence == WHL_DIST) == wheel and
((not source) or ((not source) or
(dist.precedence == pkg_resources.SOURCE_DIST) (dist.precedence == pkg_resources.SOURCE_DIST)
) )
...@@ -632,6 +635,9 @@ class Installer: ...@@ -632,6 +635,9 @@ class Installer:
"""Return requirement with optional [versions] constraint added.""" """Return requirement with optional [versions] constraint added."""
constraint = self._versions.get(requirement.project_name.lower()) constraint = self._versions.get(requirement.project_name.lower())
if constraint: if constraint:
wheel = constraint.endswith(':whl')
if wheel:
constraint = constraint[:-4]
try: try:
requirement = _constrained_requirement(constraint, requirement = _constrained_requirement(constraint,
requirement) requirement)
...@@ -639,6 +645,8 @@ class Installer: ...@@ -639,6 +645,8 @@ class Installer:
logger.info(self._version_conflict_information( logger.info(self._version_conflict_information(
requirement.project_name.lower())) requirement.project_name.lower()))
raise raise
if wheel:
requirement.wheel = True
return requirement return requirement
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment