uv-resolver: introduce new UniversalMarker type

This effectively combines a PEP 508 marker and an as-yet-specified
marker for expressing conflicts among extras and groups.

This just defines the type and threads it through most of the various
points in the code that previously used `MarkerTree` only. Some parts
do still continue to use `MarkerTree` specifically, e.g., when dealing
with non-universal resolution or exporting to `requirements.txt`.

This doesn't change any behavior.
This commit is contained in:
Andrew Gallant 2024-11-21 14:01:55 -05:00 committed by Andrew Gallant
parent d7e5fcbf62
commit dae584d49b
18 changed files with 376 additions and 92 deletions

View file

@ -22,6 +22,7 @@ pub use resolver::{
PackageVersionsResult, Reporter as ResolverReporter, Resolver, ResolverEnvironment,
ResolverProvider, VersionsResponse, WheelMetadataResult,
};
pub use universal_marker::UniversalMarker;
pub use version_map::VersionMap;
pub use yanks::AllowedYanks;
@ -56,5 +57,6 @@ mod requires_python;
mod resolution;
mod resolution_mode;
mod resolver;
mod universal_marker;
mod version_map;
mod yanks;