Fix "direct" check in PipProvider.get_preference #12973
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed this while running tests from a user provided scenario in #12972. I'm going to have to think about how to add a test, but I'm confident that the
directis broken, possibly this happened when backjumping happened.When
has_informationis true,candidateis always a tuple, so testing forcandidateis not None is equivalent to testinghas_informationis true. This is clearly not the intent...Looking at this tuple, the elements can either be None or an instance of
Candidatewhich happens in both the case ofExplicitRequirementorRequiresPythonRequirement, and I assume this logic is trying to detect when aCandidateis based onExplicitRequirement, but also being true forRequiresPythonRequirementdoesn't functionally matter, asrequires_pythonis tested for in front ofdirect.Fixes #12975