From cff4540f6ee264c3222e966092cb65b4054008ce Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Mon, 28 Aug 2023 22:21:54 -0400 Subject: [PATCH] Attempt to restore prior behavior of collecting hashes ignoring the compatibility of the current system --- pipenv/utils/resolver.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/pipenv/utils/resolver.py b/pipenv/utils/resolver.py index 34277872..8b69d9e8 100644 --- a/pipenv/utils/resolver.py +++ b/pipenv/utils/resolver.py @@ -245,7 +245,6 @@ class Resolver: resolver.skipped[package_name] = dep resolver.initial_constraints = constraints resolver.index_lookup = index_lookup - resolver.finder.index_lookup = index_lookup resolver.markers_lookup = markers_lookup return resolver @@ -335,12 +334,12 @@ class Resolver: ) return finder - @property - def finder(self): + def finder(self, ignore_compatibility=False): finder = self.package_finder index_lookup = self.prepare_index_lookup() finder._link_collector.index_lookup = index_lookup finder._link_collector.search_scope.index_lookup = index_lookup + finder._ignore_compatibility = ignore_compatibility return finder @cached_property @@ -349,7 +348,7 @@ class Resolver: pip_options.extra_index_urls = [] return parse_requirements( self.constraint_file, - finder=self.finder, + finder=self.finder(), session=self.session, options=pip_options, ) @@ -361,7 +360,7 @@ class Resolver: parsed_default_constraints = parse_requirements( self.default_constraint_file, constraint=True, - finder=self.finder, + finder=self.finder(), session=self.session, options=pip_options, ) @@ -411,7 +410,7 @@ class Resolver: globally_managed=True ) as directory: pip_options = self.pip_options - finder = self.finder + finder = self.finder() wheel_cache = WheelCache(pip_options.cache_dir) preparer = self.pip_command.make_requirement_preparer( temp_build_dir=directory, @@ -455,9 +454,11 @@ class Resolver: if result.markers: self.markers[result.name] = result.markers else: - candidate = self.finder.find_best_candidate( - result.name, result.specifier - ).best_candidate + candidate = ( + self.finder() + .find_best_candidate(result.name, result.specifier) + .best_candidate + ) if candidate: requires_python = candidate.link.requires_python if requires_python: @@ -500,9 +501,11 @@ class Resolver: if hashes: return hashes - applicable_candidates = self.finder.find_best_candidate( - ireq.name, ireq.specifier - ).iter_applicable() + applicable_candidates = ( + self.finder(ignore_compatibility=True) + .find_best_candidate(ireq.name, ireq.specifier) + .iter_applicable() + ) applicable_candidates = list(applicable_candidates) if applicable_candidates: return sorted(