mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 19:08:04 +00:00
Add [tool.uv.dependency-groups].mygroup.requires-python
(#13735)
This allows you to specify requires-python on individual dependency-groups, with the intended usecase being "oh my dev-dependencies have a higher requires-python than my actual project". This includes a large driveby move of the RequiresPython type to uv-distribution-types to allow us to generate the appropriate markers at this point in the code. It also migrates RequiresPython from pubgrub::Range to version_ranges::Ranges, and makes several pub(crate) items pub, as it's no longer defined in uv_resolver. Fixes #11606
This commit is contained in:
parent
26db29caac
commit
5021840919
54 changed files with 2072 additions and 538 deletions
|
@ -295,6 +295,15 @@ pub struct DependencyGroupsWithDefaults {
|
|||
}
|
||||
|
||||
impl DependencyGroupsWithDefaults {
|
||||
/// Do not enable any groups
|
||||
///
|
||||
/// Many places in the code need to know what dependency-groups are active,
|
||||
/// but various commands or subsystems never enable any dependency-groups,
|
||||
/// in which case they want this.
|
||||
pub fn none() -> Self {
|
||||
DependencyGroups::default().with_defaults(DefaultGroups::default())
|
||||
}
|
||||
|
||||
/// Returns `true` if the specification was enabled, and *only* because it was a default
|
||||
pub fn contains_because_default(&self, group: &GroupName) -> bool {
|
||||
self.cur.contains(group) && !self.prev.contains(group)
|
||||
|
|
|
@ -263,6 +263,14 @@ pub struct ExtrasSpecificationWithDefaults {
|
|||
}
|
||||
|
||||
impl ExtrasSpecificationWithDefaults {
|
||||
/// Do not enable any extras
|
||||
///
|
||||
/// Many places in the code need to know what extras are active,
|
||||
/// but various commands or subsystems never enable any extras,
|
||||
/// in which case they want this.
|
||||
pub fn none() -> Self {
|
||||
ExtrasSpecification::default().with_defaults(DefaultExtras::default())
|
||||
}
|
||||
/// Returns `true` if the specification was enabled, and *only* because it was a default
|
||||
pub fn contains_because_default(&self, extra: &ExtraName) -> bool {
|
||||
self.cur.contains(extra) && !self.prev.contains(extra)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue