diff --git a/src/pip/_internal/resolution/resolvelib/provider.py b/src/pip/_internal/resolution/resolvelib/provider.py index 775b5f898ef..1ad429c2003 100644 --- a/src/pip/_internal/resolution/resolvelib/provider.py +++ b/src/pip/_internal/resolution/resolvelib/provider.py @@ -38,13 +38,14 @@ def get_preference( information # type: Sequence[Tuple[Requirement, Candidate]] ): # type: (...) -> Any - if self._prefer_minimum_versions: - return 0 return len(candidates) def find_matches(self, requirement): # type: (Requirement) -> Sequence[Candidate] - return requirement.find_matches() + results = requirement.find_matches() + if self._prefer_minimum_versions: + results = list(reversed(results)) + return results def is_satisfied_by(self, requirement, candidate): # type: (Requirement, Candidate) -> bool diff --git a/src/pip/_vendor/resolvelib/resolvers.py b/src/pip/_vendor/resolvelib/resolvers.py index 90d602ba250..07828edc329 100644 --- a/src/pip/_vendor/resolvelib/resolvers.py +++ b/src/pip/_vendor/resolvelib/resolvers.py @@ -218,11 +218,7 @@ def _get_criteria_to_update(self, candidate): def _attempt_to_pin_criterion(self, name, criterion, prefer_minimum_versions): causes = [] - if prefer_minimum_versions: - candidates_in_order = criterion.candidates - else: - candidates_in_order = reversed(criterion.candidates) - for candidate in candidates_in_order: + for candidate in reversed(criterion.candidates): try: criteria = self._get_criteria_to_update(candidate) except RequirementsConflicted as e: