mirror of
https://github.com/astral-sh/uv.git
synced 2025-10-29 03:02:55 +00:00
Move extra specification into uv-configuration (#3897)
## Summary I need to use this in the resolver (and it's at-home with other, similar configuration options).
This commit is contained in:
parent
2b6c24ed2d
commit
3461c8b585
13 changed files with 69 additions and 70 deletions
35
crates/uv-configuration/src/extras.rs
Normal file
35
crates/uv-configuration/src/extras.rs
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
use uv_normalize::ExtraName;
|
||||||
|
|
||||||
|
#[derive(Debug, Default, Clone)]
|
||||||
|
pub enum ExtrasSpecification {
|
||||||
|
#[default]
|
||||||
|
None,
|
||||||
|
All,
|
||||||
|
Some(Vec<ExtraName>),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ExtrasSpecification {
|
||||||
|
/// Determine the extras specification to use based on the command-line arguments.
|
||||||
|
pub fn from_args(all_extras: bool, extra: Vec<ExtraName>) -> Self {
|
||||||
|
if all_extras {
|
||||||
|
ExtrasSpecification::All
|
||||||
|
} else if extra.is_empty() {
|
||||||
|
ExtrasSpecification::None
|
||||||
|
} else {
|
||||||
|
ExtrasSpecification::Some(extra)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns true if a name is included in the extra specification.
|
||||||
|
pub fn contains(&self, name: &ExtraName) -> bool {
|
||||||
|
match self {
|
||||||
|
ExtrasSpecification::All => true,
|
||||||
|
ExtrasSpecification::None => false,
|
||||||
|
ExtrasSpecification::Some(extras) => extras.contains(name),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn is_empty(&self) -> bool {
|
||||||
|
matches!(self, ExtrasSpecification::None)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ pub use build_options::*;
|
||||||
pub use concurrency::*;
|
pub use concurrency::*;
|
||||||
pub use config_settings::*;
|
pub use config_settings::*;
|
||||||
pub use constraints::*;
|
pub use constraints::*;
|
||||||
|
pub use extras::*;
|
||||||
pub use name_specifiers::*;
|
pub use name_specifiers::*;
|
||||||
pub use overrides::*;
|
pub use overrides::*;
|
||||||
pub use package_options::*;
|
pub use package_options::*;
|
||||||
|
|
@ -14,6 +15,7 @@ mod build_options;
|
||||||
mod concurrency;
|
mod concurrency;
|
||||||
mod config_settings;
|
mod config_settings;
|
||||||
mod constraints;
|
mod constraints;
|
||||||
|
mod extras;
|
||||||
mod name_specifiers;
|
mod name_specifiers;
|
||||||
mod overrides;
|
mod overrides;
|
||||||
mod package_options;
|
mod package_options;
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,13 @@ use distribution_types::{Requirement, RequirementSource, Requirements};
|
||||||
use pep440_rs::VersionSpecifiers;
|
use pep440_rs::VersionSpecifiers;
|
||||||
use pep508_rs::{Pep508Error, RequirementOrigin, VerbatimUrl, VersionOrUrl};
|
use pep508_rs::{Pep508Error, RequirementOrigin, VerbatimUrl, VersionOrUrl};
|
||||||
use pypi_types::VerbatimParsedUrl;
|
use pypi_types::VerbatimParsedUrl;
|
||||||
use uv_configuration::PreviewMode;
|
use uv_configuration::{ExtrasSpecification, PreviewMode};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_git::GitReference;
|
use uv_git::GitReference;
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
use uv_warnings::warn_user_once;
|
use uv_warnings::warn_user_once;
|
||||||
|
|
||||||
use crate::{ExtrasSpecification, Workspace};
|
use crate::Workspace;
|
||||||
|
|
||||||
#[derive(Debug, Error)]
|
#[derive(Debug, Error)]
|
||||||
pub enum Pep621Error {
|
pub enum Pep621Error {
|
||||||
|
|
@ -683,12 +683,12 @@ mod test {
|
||||||
use indoc::indoc;
|
use indoc::indoc;
|
||||||
use insta::assert_snapshot;
|
use insta::assert_snapshot;
|
||||||
|
|
||||||
use uv_configuration::PreviewMode;
|
use uv_configuration::{ExtrasSpecification, PreviewMode};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
|
|
||||||
use crate::ProjectWorkspace;
|
use crate::ProjectWorkspace;
|
||||||
use crate::{ExtrasSpecification, RequirementsSpecification};
|
use crate::RequirementsSpecification;
|
||||||
|
|
||||||
fn from_source(
|
fn from_source(
|
||||||
contents: &str,
|
contents: &str,
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,12 @@ use distribution_types::{
|
||||||
};
|
};
|
||||||
use pep508_rs::RequirementOrigin;
|
use pep508_rs::RequirementOrigin;
|
||||||
use pypi_types::VerbatimParsedUrl;
|
use pypi_types::VerbatimParsedUrl;
|
||||||
|
use uv_configuration::ExtrasSpecification;
|
||||||
use uv_distribution::{DistributionDatabase, Reporter};
|
use uv_distribution::{DistributionDatabase, Reporter};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
||||||
use uv_types::{BuildContext, HashStrategy};
|
use uv_types::{BuildContext, HashStrategy};
|
||||||
|
|
||||||
use crate::ExtrasSpecification;
|
|
||||||
|
|
||||||
/// A resolver for requirements specified via source trees.
|
/// A resolver for requirements specified via source trees.
|
||||||
///
|
///
|
||||||
/// Used, e.g., to determine the input requirements when a user specifies a `pyproject.toml`
|
/// Used, e.g., to determine the input requirements when a user specifies a `pyproject.toml`
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ use std::path::{Path, PathBuf};
|
||||||
use console::Term;
|
use console::Term;
|
||||||
|
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_normalize::ExtraName;
|
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
||||||
use crate::confirm;
|
use crate::confirm;
|
||||||
|
|
@ -154,37 +153,3 @@ impl std::fmt::Display for RequirementsSource {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone)]
|
|
||||||
pub enum ExtrasSpecification {
|
|
||||||
#[default]
|
|
||||||
None,
|
|
||||||
All,
|
|
||||||
Some(Vec<ExtraName>),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ExtrasSpecification {
|
|
||||||
/// Determine the extras specification to use based on the command-line arguments.
|
|
||||||
pub fn from_args(all_extras: bool, extra: Vec<ExtraName>) -> Self {
|
|
||||||
if all_extras {
|
|
||||||
ExtrasSpecification::All
|
|
||||||
} else if extra.is_empty() {
|
|
||||||
ExtrasSpecification::None
|
|
||||||
} else {
|
|
||||||
ExtrasSpecification::Some(extra)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if a name is included in the extra specification.
|
|
||||||
pub fn contains(&self, name: &ExtraName) -> bool {
|
|
||||||
match self {
|
|
||||||
ExtrasSpecification::All => true,
|
|
||||||
ExtrasSpecification::None => false,
|
|
||||||
ExtrasSpecification::Some(extras) => extras.contains(name),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn is_empty(&self) -> bool {
|
|
||||||
matches!(self, ExtrasSpecification::None)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -47,13 +47,13 @@ use requirements_txt::{
|
||||||
EditableRequirement, FindLink, RequirementEntry, RequirementsTxt, RequirementsTxtRequirement,
|
EditableRequirement, FindLink, RequirementEntry, RequirementsTxt, RequirementsTxtRequirement,
|
||||||
};
|
};
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{NoBinary, NoBuild, PreviewMode};
|
use uv_configuration::{ExtrasSpecification, NoBinary, NoBuild, PreviewMode};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
|
|
||||||
use crate::pyproject::{Pep621Metadata, PyProjectToml};
|
use crate::pyproject::{Pep621Metadata, PyProjectToml};
|
||||||
use crate::ProjectWorkspace;
|
use crate::ProjectWorkspace;
|
||||||
use crate::{ExtrasSpecification, RequirementsSource, Workspace, WorkspaceError};
|
use crate::{RequirementsSource, Workspace, WorkspaceError};
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct RequirementsSpecification {
|
pub struct RequirementsSpecification {
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ use uv_auth::store_credentials_from_url;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{BaseClientBuilder, Connectivity, FlatIndexClient, RegistryClientBuilder};
|
use uv_client::{BaseClientBuilder, Connectivity, FlatIndexClient, RegistryClientBuilder};
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, ConfigSettings, Constraints, IndexStrategy, NoBinary, NoBuild, Overrides,
|
Concurrency, ConfigSettings, Constraints, ExtrasSpecification, IndexStrategy, NoBinary,
|
||||||
PreviewMode, SetupPyStrategy, Upgrade,
|
NoBuild, Overrides, PreviewMode, SetupPyStrategy, Upgrade,
|
||||||
};
|
};
|
||||||
use uv_configuration::{KeyringProviderType, TargetTriple};
|
use uv_configuration::{KeyringProviderType, TargetTriple};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
|
|
@ -34,8 +34,8 @@ use uv_interpreter::{
|
||||||
use uv_interpreter::{PythonVersion, SourceSelector};
|
use uv_interpreter::{PythonVersion, SourceSelector};
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
use uv_requirements::{
|
use uv_requirements::{
|
||||||
upgrade::read_lockfile, ExtrasSpecification, LookaheadResolver, NamedRequirementsResolver,
|
upgrade::read_lockfile, LookaheadResolver, NamedRequirementsResolver, RequirementsSource,
|
||||||
RequirementsSource, RequirementsSpecification, SourceTreeResolver,
|
RequirementsSpecification, SourceTreeResolver,
|
||||||
};
|
};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
AnnotationStyle, DependencyMode, DisplayResolutionGraph, ExcludeNewer, Exclusions, FlatIndex,
|
AnnotationStyle, DependencyMode, DisplayResolutionGraph, ExcludeNewer, Exclusions, FlatIndex,
|
||||||
|
|
|
||||||
|
|
@ -2,20 +2,20 @@ use std::borrow::Cow;
|
||||||
use std::fmt::Write;
|
use std::fmt::Write;
|
||||||
|
|
||||||
use anstream::eprint;
|
use anstream::eprint;
|
||||||
use distribution_types::{IndexLocations, Resolution};
|
|
||||||
use fs_err as fs;
|
use fs_err as fs;
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use owo_colors::OwoColorize;
|
use owo_colors::OwoColorize;
|
||||||
use tracing::{debug, enabled, Level};
|
use tracing::{debug, enabled, Level};
|
||||||
|
|
||||||
|
use distribution_types::{IndexLocations, Resolution};
|
||||||
use install_wheel_rs::linker::LinkMode;
|
use install_wheel_rs::linker::LinkMode;
|
||||||
use platform_tags::Tags;
|
use platform_tags::Tags;
|
||||||
use uv_auth::store_credentials_from_url;
|
use uv_auth::store_credentials_from_url;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{BaseClientBuilder, Connectivity, FlatIndexClient, RegistryClientBuilder};
|
use uv_client::{BaseClientBuilder, Connectivity, FlatIndexClient, RegistryClientBuilder};
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, ConfigSettings, IndexStrategy, NoBinary, NoBuild, PreviewMode, Reinstall,
|
Concurrency, ConfigSettings, ExtrasSpecification, IndexStrategy, NoBinary, NoBuild,
|
||||||
SetupPyStrategy, Upgrade,
|
PreviewMode, Reinstall, SetupPyStrategy, Upgrade,
|
||||||
};
|
};
|
||||||
use uv_configuration::{KeyringProviderType, TargetTriple};
|
use uv_configuration::{KeyringProviderType, TargetTriple};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
|
|
@ -23,7 +23,7 @@ use uv_fs::Simplified;
|
||||||
use uv_installer::{SatisfiesResult, SitePackages};
|
use uv_installer::{SatisfiesResult, SitePackages};
|
||||||
use uv_interpreter::{PythonEnvironment, PythonVersion, SystemPython, Target};
|
use uv_interpreter::{PythonEnvironment, PythonVersion, SystemPython, Target};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_requirements::{ExtrasSpecification, RequirementsSource, RequirementsSpecification};
|
use uv_requirements::{RequirementsSource, RequirementsSpecification};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
DependencyMode, ExcludeNewer, FlatIndex, InMemoryIndex, Lock, OptionsBuilder, PreReleaseMode,
|
DependencyMode, ExcludeNewer, FlatIndex, InMemoryIndex, Lock, OptionsBuilder, PreReleaseMode,
|
||||||
ResolutionMode,
|
ResolutionMode,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ use platform_tags::Tags;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{BaseClientBuilder, RegistryClient};
|
use uv_client::{BaseClientBuilder, RegistryClient};
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, Constraints, NoBinary, Overrides, PreviewMode, Reinstall, Upgrade,
|
Concurrency, Constraints, ExtrasSpecification, NoBinary, Overrides, PreviewMode, Reinstall,
|
||||||
|
Upgrade,
|
||||||
};
|
};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_distribution::DistributionDatabase;
|
use uv_distribution::DistributionDatabase;
|
||||||
|
|
@ -30,8 +31,8 @@ use uv_installer::{Downloader, Plan, Planner, SitePackages};
|
||||||
use uv_interpreter::{Interpreter, PythonEnvironment};
|
use uv_interpreter::{Interpreter, PythonEnvironment};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_requirements::{
|
use uv_requirements::{
|
||||||
ExtrasSpecification, LookaheadResolver, NamedRequirementsResolver, RequirementsSource,
|
LookaheadResolver, NamedRequirementsResolver, RequirementsSource, RequirementsSpecification,
|
||||||
RequirementsSpecification, SourceTreeResolver, Workspace,
|
SourceTreeResolver, Workspace,
|
||||||
};
|
};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
DependencyMode, Exclusions, FlatIndex, InMemoryIndex, Manifest, Options, Preference,
|
DependencyMode, Exclusions, FlatIndex, InMemoryIndex, Manifest, Options, Preference,
|
||||||
|
|
|
||||||
|
|
@ -13,15 +13,15 @@ use uv_auth::store_credentials_from_url;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{BaseClientBuilder, Connectivity, FlatIndexClient, RegistryClientBuilder};
|
use uv_client::{BaseClientBuilder, Connectivity, FlatIndexClient, RegistryClientBuilder};
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, ConfigSettings, IndexStrategy, NoBinary, NoBuild, PreviewMode, Reinstall,
|
Concurrency, ConfigSettings, ExtrasSpecification, IndexStrategy, NoBinary, NoBuild,
|
||||||
SetupPyStrategy, Upgrade,
|
PreviewMode, Reinstall, SetupPyStrategy, Upgrade,
|
||||||
};
|
};
|
||||||
use uv_configuration::{KeyringProviderType, TargetTriple};
|
use uv_configuration::{KeyringProviderType, TargetTriple};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_installer::SitePackages;
|
use uv_installer::SitePackages;
|
||||||
use uv_interpreter::{PythonEnvironment, PythonVersion, SystemPython, Target};
|
use uv_interpreter::{PythonEnvironment, PythonVersion, SystemPython, Target};
|
||||||
use uv_requirements::{ExtrasSpecification, RequirementsSource, RequirementsSpecification};
|
use uv_requirements::{RequirementsSource, RequirementsSpecification};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
DependencyMode, ExcludeNewer, FlatIndex, InMemoryIndex, OptionsBuilder, PreReleaseMode,
|
DependencyMode, ExcludeNewer, FlatIndex, InMemoryIndex, OptionsBuilder, PreReleaseMode,
|
||||||
ResolutionMode,
|
ResolutionMode,
|
||||||
|
|
@ -98,7 +98,7 @@ pub(crate) async fn pip_sync(
|
||||||
constraints,
|
constraints,
|
||||||
overrides,
|
overrides,
|
||||||
None,
|
None,
|
||||||
&ExtrasSpecification::default(),
|
&extras,
|
||||||
&client_builder,
|
&client_builder,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@ use install_wheel_rs::linker::LinkMode;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{BaseClientBuilder, RegistryClientBuilder};
|
use uv_client::{BaseClientBuilder, RegistryClientBuilder};
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, ConfigSettings, NoBinary, NoBuild, PreviewMode, Reinstall, SetupPyStrategy,
|
Concurrency, ConfigSettings, ExtrasSpecification, NoBinary, NoBuild, PreviewMode, Reinstall,
|
||||||
Upgrade,
|
SetupPyStrategy, Upgrade,
|
||||||
};
|
};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_requirements::{ExtrasSpecification, ProjectWorkspace, RequirementsSpecification};
|
use uv_requirements::{ProjectWorkspace, RequirementsSpecification};
|
||||||
use uv_resolver::{FlatIndex, InMemoryIndex, Options};
|
use uv_resolver::{FlatIndex, InMemoryIndex, Options};
|
||||||
use uv_types::{BuildIsolation, EmptyInstalledPackages, HashStrategy, InFlight};
|
use uv_types::{BuildIsolation, EmptyInstalledPackages, HashStrategy, InFlight};
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
|
||||||
|
|
@ -5,25 +5,23 @@ use itertools::Itertools;
|
||||||
use owo_colors::OwoColorize;
|
use owo_colors::OwoColorize;
|
||||||
use tracing::debug;
|
use tracing::debug;
|
||||||
|
|
||||||
use crate::commands::pip;
|
|
||||||
use distribution_types::{IndexLocations, Resolution};
|
use distribution_types::{IndexLocations, Resolution};
|
||||||
use install_wheel_rs::linker::LinkMode;
|
use install_wheel_rs::linker::LinkMode;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{BaseClientBuilder, Connectivity, RegistryClientBuilder};
|
use uv_client::{BaseClientBuilder, Connectivity, RegistryClientBuilder};
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, ConfigSettings, NoBinary, NoBuild, PreviewMode, Reinstall, SetupPyStrategy,
|
Concurrency, ConfigSettings, ExtrasSpecification, NoBinary, NoBuild, PreviewMode, Reinstall,
|
||||||
Upgrade,
|
SetupPyStrategy, Upgrade,
|
||||||
};
|
};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_installer::{SatisfiesResult, SitePackages};
|
use uv_installer::{SatisfiesResult, SitePackages};
|
||||||
use uv_interpreter::{find_default_interpreter, PythonEnvironment};
|
use uv_interpreter::{find_default_interpreter, PythonEnvironment};
|
||||||
use uv_requirements::{
|
use uv_requirements::{ProjectWorkspace, RequirementsSource, RequirementsSpecification, Workspace};
|
||||||
ExtrasSpecification, ProjectWorkspace, RequirementsSource, RequirementsSpecification, Workspace,
|
|
||||||
};
|
|
||||||
use uv_resolver::{FlatIndex, InMemoryIndex, Options};
|
use uv_resolver::{FlatIndex, InMemoryIndex, Options};
|
||||||
use uv_types::{BuildIsolation, HashStrategy, InFlight};
|
use uv_types::{BuildIsolation, HashStrategy, InFlight};
|
||||||
|
|
||||||
|
use crate::commands::pip;
|
||||||
use crate::printer::Printer;
|
use crate::printer::Printer;
|
||||||
|
|
||||||
pub(crate) mod lock;
|
pub(crate) mod lock;
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,11 @@ use install_wheel_rs::linker::LinkMode;
|
||||||
use uv_cache::{CacheArgs, Refresh};
|
use uv_cache::{CacheArgs, Refresh};
|
||||||
use uv_client::Connectivity;
|
use uv_client::Connectivity;
|
||||||
use uv_configuration::{
|
use uv_configuration::{
|
||||||
Concurrency, ConfigSettings, IndexStrategy, KeyringProviderType, NoBinary, NoBuild,
|
Concurrency, ConfigSettings, ExtrasSpecification, IndexStrategy, KeyringProviderType, NoBinary,
|
||||||
PreviewMode, Reinstall, SetupPyStrategy, TargetTriple, Upgrade,
|
NoBuild, PreviewMode, Reinstall, SetupPyStrategy, TargetTriple, Upgrade,
|
||||||
};
|
};
|
||||||
use uv_interpreter::{PythonVersion, Target};
|
use uv_interpreter::{PythonVersion, Target};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_requirements::ExtrasSpecification;
|
|
||||||
use uv_resolver::{AnnotationStyle, DependencyMode, ExcludeNewer, PreReleaseMode, ResolutionMode};
|
use uv_resolver::{AnnotationStyle, DependencyMode, ExcludeNewer, PreReleaseMode, ResolutionMode};
|
||||||
use uv_workspace::{Combine, PipOptions, Workspace};
|
use uv_workspace::{Combine, PipOptions, Workspace};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue