Enable first-class dependency exclusions (#16528)

## Summary

This PR adds an `exclude-dependencies` setting that allows users to omit
a dependency during resolution. It's effectively a formalized version of
the `flask ; python_version < '0'` hack that we've suggested to users in
various issues.

Closes #12616.
This commit is contained in:
Charlie Marsh 2025-10-31 10:14:12 -04:00 committed by GitHub
parent 7978122837
commit 5c71b5c124
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
42 changed files with 711 additions and 21 deletions

View file

@ -426,6 +426,7 @@ pub struct ToolUv {
#[serde(flatten)]
pub top_level: ResolverInstallerSchema,
pub override_dependencies: Option<Vec<uv_pep508::Requirement<VerbatimParsedUrl>>>,
pub exclude_dependencies: Option<Vec<uv_normalize::PackageName>>,
pub constraint_dependencies: Option<Vec<uv_pep508::Requirement<VerbatimParsedUrl>>>,
pub build_constraint_dependencies: Option<Vec<uv_pep508::Requirement<VerbatimParsedUrl>>>,
pub extra_build_dependencies: Option<BTreeMap<PackageName, Vec<ExtraBuildDependency>>>,