Parameterize check_supported_wheels to Resolver.resolve

This reduces our dependence on the input RequirementSet.
This commit is contained in:
Chris Hunt 2020-02-05 21:21:52 -05:00
parent 58c06299db
commit 550ae907bd
5 changed files with 19 additions and 8 deletions

View File

@ -132,7 +132,9 @@ class DownloadCommand(RequirementCommand):
self.trace_basic_info(finder)
requirement_set = resolver.resolve(requirement_set)
requirement_set = resolver.resolve(
requirement_set, requirement_set.check_supported_wheels
)
downloaded = ' '.join([
req.name for req in requirement_set.successfully_downloaded

View File

@ -328,7 +328,9 @@ class InstallCommand(RequirementCommand):
self.trace_basic_info(finder)
requirement_set = resolver.resolve(requirement_set)
requirement_set = resolver.resolve(
requirement_set, requirement_set.check_supported_wheels
)
try:
pip_req = requirement_set.get_requirement("pip")

View File

@ -158,7 +158,9 @@ class WheelCommand(RequirementCommand):
self.trace_basic_info(finder)
requirement_set = resolver.resolve(requirement_set)
requirement_set = resolver.resolve(
requirement_set, requirement_set.check_supported_wheels
)
reqs_to_build = [
r for r in requirement_set.requirements.values()

View File

@ -147,8 +147,8 @@ class Resolver(object):
self._discovered_dependencies = \
defaultdict(list) # type: DiscoveredDependencies
def resolve(self, requirement_set):
# type: (RequirementSet) -> RequirementSet
def resolve(self, requirement_set, check_supported_wheels):
# type: (RequirementSet, bool) -> RequirementSet
"""Resolve what operations need to be done
As a side-effect of this method, the packages (and their dependencies)
@ -163,7 +163,6 @@ class Resolver(object):
requirement_set.unnamed_requirements +
list(requirement_set.requirements.values())
)
check_supported_wheels = requirement_set.check_supported_wheels
requirement_set = RequirementSet(
check_supported_wheels=check_supported_wheels
)

View File

@ -113,6 +113,7 @@ class TestRequirementSet(object):
(req, build_dir.replace('\\', '\\\\')),
resolver.resolve,
reqset,
True,
)
# TODO: Update test when Python 2.7 is dropped.
@ -129,7 +130,7 @@ class TestRequirementSet(object):
reqset.add_requirement(req)
finder = make_test_finder(find_links=[data.find_links])
with self._basic_resolver(finder) as resolver:
reqset = resolver.resolve(reqset)
reqset = resolver.resolve(reqset, True)
# This is hacky but does test both case in py2 and py3
if sys.version_info[:2] == (2, 7):
assert reqset.has_requirement('simple')
@ -155,7 +156,8 @@ class TestRequirementSet(object):
r' simple==1.0 --hash=sha256:393043e672415891885c9a2a0929b1'
r'af95fb866d6ca016b42d2e6ce53619b653$',
resolver.resolve,
reqset
reqset,
True,
)
def test_missing_hash_with_require_hashes_in_reqs_file(self, data, tmpdir):
@ -210,6 +212,7 @@ class TestRequirementSet(object):
r"\(from -r file \(line 2\)\)".format(sep=sep),
resolver.resolve,
reqset,
True,
)
def test_unpinned_hash_checking(self, data):
@ -238,6 +241,7 @@ class TestRequirementSet(object):
r' simple2>1.0 .* \(from -r file \(line 2\)\)',
resolver.resolve,
reqset,
True,
)
def test_hash_mismatch(self, data):
@ -259,6 +263,7 @@ class TestRequirementSet(object):
r'866d6ca016b42d2e6ce53619b653$',
resolver.resolve,
reqset,
True,
)
def test_unhashed_deps_on_require_hashes(self, data):
@ -281,6 +286,7 @@ class TestRequirementSet(object):
r' TopoRequires from .*$',
resolver.resolve,
reqset,
True,
)
def test_hashed_deps_on_require_hashes(self):