Closed jsirois closed 4 weeks ago
This is on the big side, but it is broken up into functioning independent commits. Thanks in advance for your attention.
I will note this opens up --override
since the deep --exclude
plumbing already tricks Pip into following doctored requirements lists; it's just that the only doctoring right now is removal of requirements from the list and not editing of requirements in the list. No one has asked for this yet, so I'll save that for a follow up.
Filed #2425 to track --override
.
This should be all green now.
cc:@cognifloyd who inspired going a bit further and implementing deep excludes.
Previously,
--exclude
s were processed after all resolution was complete. Not only was this sub-optimal, incurring more resolution work (downloads, backtracks, etc.), but it also could lead to failed interactions (metadata extraction & wheel builds) with excluded distributions.Fix this by plumbing
--exclude
s all the way through the Pip resolve process. Additionally, fix the existing plumbing through the two other resolve processes: PEX repository resolution and lock file resolution.Fixes #455 Fixes #2097