Split configuration options out of uv-types (#2924)

Needed to prevent circular dependencies in my toolchain work (#2931). I
think this is probably a reasonable change as we move towards persistent
configuration too?

Unfortunately `BuildIsolation` needs to be in `uv-types` to avoid
circular dependencies still. We might be able to resolve that in the
future.
This commit is contained in:
Zanie Blue 2024-04-09 11:35:53 -05:00 committed by GitHub
parent 90735660cb
commit 1512e07a2e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
50 changed files with 155 additions and 89 deletions

30
Cargo.lock generated
View file

@ -2952,9 +2952,9 @@ dependencies = [
"unscanny",
"url",
"uv-client",
"uv-configuration",
"uv-fs",
"uv-normalize",
"uv-types",
"uv-warnings",
]
@ -4328,6 +4328,7 @@ dependencies = [
"uv-auth",
"uv-cache",
"uv-client",
"uv-configuration",
"uv-dispatch",
"uv-distribution",
"uv-fs",
@ -4384,6 +4385,7 @@ dependencies = [
"tokio",
"toml",
"tracing",
"uv-configuration",
"uv-fs",
"uv-interpreter",
"uv-types",
@ -4458,14 +4460,30 @@ dependencies = [
"urlencoding",
"uv-auth",
"uv-cache",
"uv-configuration",
"uv-fs",
"uv-normalize",
"uv-types",
"uv-version",
"uv-warnings",
"webpki-roots",
]
[[package]]
name = "uv-configuration"
version = "0.0.1"
dependencies = [
"anyhow",
"clap",
"distribution-types",
"itertools 0.12.1",
"pep508_rs",
"rustc-hash",
"serde",
"serde_json",
"uv-cache",
"uv-normalize",
]
[[package]]
name = "uv-dev"
version = "0.0.1"
@ -4500,6 +4518,7 @@ dependencies = [
"uv-build",
"uv-cache",
"uv-client",
"uv-configuration",
"uv-dispatch",
"uv-installer",
"uv-interpreter",
@ -4523,9 +4542,9 @@ dependencies = [
"uv-build",
"uv-cache",
"uv-client",
"uv-configuration",
"uv-installer",
"uv-interpreter",
"uv-requirements",
"uv-resolver",
"uv-types",
]
@ -4560,6 +4579,7 @@ dependencies = [
"url",
"uv-cache",
"uv-client",
"uv-configuration",
"uv-extract",
"uv-fs",
"uv-git",
@ -4652,6 +4672,7 @@ dependencies = [
"url",
"uv-cache",
"uv-client",
"uv-configuration",
"uv-distribution",
"uv-extract",
"uv-fs",
@ -4725,6 +4746,7 @@ dependencies = [
"tracing",
"url",
"uv-client",
"uv-configuration",
"uv-distribution",
"uv-fs",
"uv-normalize",
@ -4771,6 +4793,7 @@ dependencies = [
"url",
"uv-cache",
"uv-client",
"uv-configuration",
"uv-distribution",
"uv-interpreter",
"uv-normalize",
@ -4792,6 +4815,7 @@ dependencies = [
"serde",
"serde_json",
"uv-cache",
"uv-configuration",
"uv-interpreter",
"uv-normalize",
]

View file

@ -44,6 +44,7 @@ uv-normalize = { path = "crates/uv-normalize" }
uv-requirements = { path = "crates/uv-requirements" }
uv-resolver = { path = "crates/uv-resolver" }
uv-types = { path = "crates/uv-types" }
uv-configuration = { path = "crates/uv-configuration" }
uv-trampoline = { path = "crates/uv-trampoline" }
uv-version = { path = "crates/uv-version" }
uv-virtualenv = { path = "crates/uv-virtualenv" }

View file

@ -17,7 +17,7 @@ pep508_rs = { workspace = true, features = ["rkyv", "serde", "non-pep508-extensi
uv-client = { workspace = true }
uv-fs = { workspace = true }
uv-normalize = { workspace = true }
uv-types = { workspace = true }
uv-configuration = { workspace = true }
uv-warnings = { workspace = true }
fs-err = { workspace = true }

View file

@ -52,9 +52,9 @@ use pep508_rs::{
#[cfg(feature = "http")]
use uv_client::BaseClient;
use uv_client::BaseClientBuilder;
use uv_configuration::{NoBinary, NoBuild, PackageNameSpecifier};
use uv_fs::{normalize_url_path, Simplified};
use uv_normalize::ExtraName;
use uv_types::{NoBinary, NoBuild, PackageNameSpecifier};
use uv_warnings::warn_user;
/// We emit one of those for each requirements.txt entry

View file

@ -20,6 +20,7 @@ pep508_rs = { workspace = true }
uv-fs = { workspace = true }
uv-interpreter = { workspace = true }
uv-types = { workspace = true, features = ["serde"] }
uv-configuration = { workspace = true, features = ["serde"] }
uv-virtualenv = { workspace = true }
anyhow = { workspace = true }

View file

@ -28,11 +28,10 @@ use tracing::{debug, info_span, instrument, Instrument};
use distribution_types::Resolution;
use pep440_rs::Version;
use pep508_rs::{PackageName, Requirement};
use uv_configuration::{BuildKind, ConfigSettings, SetupPyStrategy};
use uv_fs::{PythonExt, Simplified};
use uv_interpreter::{Interpreter, PythonEnvironment};
use uv_types::{
BuildContext, BuildIsolation, BuildKind, ConfigSettings, SetupPyStrategy, SourceBuildTrait,
};
use uv_types::{BuildContext, BuildIsolation, SourceBuildTrait};
/// e.g. `pygraphviz/graphviz_wrap.c:3020:10: fatal error: graphviz/cgraph.h: No such file or directory`
static MISSING_HEADER_RE: Lazy<Regex> = Lazy::new(|| {

View file

@ -15,7 +15,7 @@ uv-auth = { workspace = true }
uv-cache = { workspace = true }
uv-fs = { workspace = true, features = ["tokio"] }
uv-normalize = { workspace = true }
uv-types = { workspace = true }
uv-configuration = { workspace = true }
uv-version = { workspace = true }
uv-warnings = { workspace = true }
pypi-types = { workspace = true }

View file

@ -19,8 +19,8 @@ use pep508_rs::VerbatimUrl;
use platform_tags::Tags;
use pypi_types::Hashes;
use uv_cache::{Cache, CacheBucket};
use uv_configuration::{NoBinary, NoBuild};
use uv_normalize::PackageName;
use uv_types::{NoBinary, NoBuild};
use crate::cached_client::{CacheControl, CachedClientError};
use crate::html::SimpleHtml;

View file

@ -22,8 +22,8 @@ use platform_tags::Platform;
use pypi_types::{Metadata23, SimpleJson};
use uv_auth::KeyringProvider;
use uv_cache::{Cache, CacheBucket, WheelCache};
use uv_configuration::IndexStrategy;
use uv_normalize::PackageName;
use uv_types::IndexStrategy;
use crate::base_client::{BaseClient, BaseClientBuilder};
use crate::cached_client::CacheControl;

View file

@ -0,0 +1,30 @@
[package]
name = "uv-configuration"
version = "0.0.1"
edition = { workspace = true }
rust-version = { workspace = true }
homepage = { workspace = true }
documentation = { workspace = true }
repository = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
[lints]
workspace = true
[dependencies]
distribution-types = { workspace = true }
pep508_rs = { workspace = true }
uv-cache = { workspace = true }
uv-normalize = { workspace = true }
anyhow = { workspace = true }
clap = { workspace = true, features = ["derive"], optional = true }
itertools = { workspace = true }
rustc-hash = { workspace = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
[features]
default = []
serde = ["dep:serde", "dep:serde_json"]

View file

@ -1,24 +1,9 @@
use std::fmt::{Display, Formatter};
use pep508_rs::PackageName;
use uv_interpreter::PythonEnvironment;
use crate::{PackageNameSpecifier, PackageNameSpecifiers};
/// Whether to enforce build isolation when building source distributions.
#[derive(Debug, Copy, Clone)]
pub enum BuildIsolation<'a> {
Isolated,
Shared(&'a PythonEnvironment),
}
impl<'a> BuildIsolation<'a> {
/// Returns `true` if build isolation is enforced.
pub fn is_isolated(&self) -> bool {
matches!(self, Self::Isolated)
}
}
/// The strategy to use when building source distributions that lack a `pyproject.toml`.
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
pub enum SetupPyStrategy {

View file

@ -0,0 +1,13 @@
pub use build_options::*;
pub use config_settings::*;
pub use constraints::*;
pub use name_specifiers::*;
pub use overrides::*;
pub use package_options::*;
mod build_options;
mod config_settings;
mod constraints;
mod name_specifiers;
mod overrides;
mod package_options;

View file

@ -29,6 +29,7 @@ uv-interpreter = { workspace = true }
uv-normalize = { workspace = true }
uv-resolver = { workspace = true }
uv-types = { workspace = true }
uv-configuration = { workspace = true }
# Any dependencies that are exclusively used in `uv-dev` should be listed as non-workspace
# dependencies, to ensure that we're forced to think twice before including them in other crates.

View file

@ -10,13 +10,11 @@ use rustc_hash::FxHashMap;
use uv_build::{SourceBuild, SourceBuildContext};
use uv_cache::{Cache, CacheArgs};
use uv_client::{FlatIndex, RegistryClientBuilder};
use uv_configuration::{BuildKind, ConfigSettings, NoBinary, NoBuild, SetupPyStrategy};
use uv_dispatch::BuildDispatch;
use uv_interpreter::PythonEnvironment;
use uv_resolver::InMemoryIndex;
use uv_types::NoBinary;
use uv_types::{
BuildContext, BuildIsolation, BuildKind, ConfigSettings, InFlight, NoBuild, SetupPyStrategy,
};
use uv_types::{BuildContext, BuildIsolation, InFlight};
#[derive(Parser)]
pub(crate) struct BuildArgs {

View file

@ -13,11 +13,12 @@ use distribution_types::{FlatIndexLocation, IndexLocations, IndexUrl, Resolution
use pep508_rs::Requirement;
use uv_cache::{Cache, CacheArgs};
use uv_client::{FlatIndex, FlatIndexClient, RegistryClientBuilder};
use uv_configuration::{ConfigSettings, NoBinary, NoBuild, SetupPyStrategy};
use uv_dispatch::BuildDispatch;
use uv_installer::SitePackages;
use uv_interpreter::PythonEnvironment;
use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver};
use uv_types::{BuildIsolation, ConfigSettings, InFlight, NoBinary, NoBuild, SetupPyStrategy};
use uv_types::{BuildIsolation, InFlight};
#[derive(ValueEnum, Default, Clone)]
pub(crate) enum ResolveCliFormat {

View file

@ -15,12 +15,12 @@ use pep440_rs::{Version, VersionSpecifier, VersionSpecifiers};
use pep508_rs::{Requirement, VersionOrUrl};
use uv_cache::{Cache, CacheArgs};
use uv_client::{FlatIndex, OwnedArchive, RegistryClient, RegistryClientBuilder};
use uv_configuration::{ConfigSettings, NoBinary, NoBuild, SetupPyStrategy};
use uv_dispatch::BuildDispatch;
use uv_interpreter::PythonEnvironment;
use uv_normalize::PackageName;
use uv_resolver::InMemoryIndex;
use uv_types::NoBinary;
use uv_types::{BuildContext, BuildIsolation, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
use uv_types::{BuildContext, BuildIsolation, InFlight};
#[derive(Parser)]
pub(crate) struct ResolveManyArgs {

View file

@ -21,9 +21,9 @@ uv-cache = { workspace = true }
uv-client = { workspace = true }
uv-installer = { workspace = true }
uv-interpreter = { workspace = true }
uv-requirements = { workspace = true }
uv-resolver = { workspace = true }
uv-types = { workspace = true }
uv-configuration = { workspace = true }
anyhow = { workspace = true }
futures = { workspace = true }

View file

@ -17,13 +17,11 @@ use pep508_rs::Requirement;
use uv_build::{SourceBuild, SourceBuildContext};
use uv_cache::Cache;
use uv_client::{FlatIndex, RegistryClient};
use uv_configuration::{BuildKind, ConfigSettings, NoBinary, NoBuild, Reinstall, SetupPyStrategy};
use uv_installer::{Downloader, Installer, Plan, Planner, SitePackages};
use uv_interpreter::{Interpreter, PythonEnvironment};
use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver};
use uv_types::{
BuildContext, BuildIsolation, BuildKind, ConfigSettings, EmptyInstalledPackages, InFlight,
NoBinary, NoBuild, Reinstall, SetupPyStrategy,
};
use uv_types::{BuildContext, BuildIsolation, EmptyInstalledPackages, InFlight};
/// The main implementation of [`BuildContext`], used by the CLI, see [`BuildContext`]
/// documentation.

View file

@ -28,6 +28,7 @@ uv-fs = { workspace = true, features = ["tokio"] }
uv-git = { workspace = true, features = ["vendored-openssl"] }
uv-normalize = { workspace = true }
uv-types = { workspace = true }
uv-configuration = { workspace = true }
anyhow = { workspace = true }
fs-err = { workspace = true }
@ -46,4 +47,3 @@ tokio-util = { workspace = true, features = ["compat"] }
tracing = { workspace = true }
url = { workspace = true }
zip = { workspace = true }

View file

@ -17,8 +17,9 @@ use platform_tags::Tags;
use pypi_types::Metadata23;
use uv_cache::{ArchiveTimestamp, CacheBucket, CacheEntry, CachedByTimestamp, WheelCache};
use uv_client::{CacheControl, CachedClientError, Connectivity, RegistryClient};
use uv_configuration::{NoBinary, NoBuild};
use uv_fs::write_atomic;
use uv_types::{BuildContext, NoBinary, NoBuild};
use uv_types::BuildContext;
use crate::locks::Locks;
use crate::{Error, LocalWheel, Reporter, SourceDistributionBuilder};

View file

@ -28,8 +28,9 @@ use uv_cache::{
use uv_client::{
CacheControl, CachedClientError, Connectivity, DataWithCachePolicy, RegistryClient,
};
use uv_configuration::{BuildKind, NoBuild};
use uv_fs::write_atomic;
use uv_types::{BuildContext, BuildKind, NoBuild, SourceBuildTrait};
use uv_types::{BuildContext, SourceBuildTrait};
use crate::error::Error;
use crate::git::{fetch_git_archive, resolve_precise};

View file

@ -29,6 +29,7 @@ uv-interpreter = { workspace = true }
uv-normalize = { workspace = true }
uv-types = { workspace = true }
uv-warnings = { workspace = true }
uv-configuration = { workspace = true }
anyhow = { workspace = true }
async-channel = { workspace = true }

View file

@ -13,10 +13,10 @@ use distribution_types::{
use pep508_rs::{Requirement, VersionOrUrl};
use platform_tags::Tags;
use uv_cache::{ArchiveTarget, ArchiveTimestamp, Cache, CacheBucket, WheelCache};
use uv_configuration::{NoBinary, Reinstall};
use uv_distribution::{BuiltWheelIndex, RegistryWheelIndex};
use uv_fs::Simplified;
use uv_interpreter::PythonEnvironment;
use uv_types::{NoBinary, Reinstall};
use crate::{ResolvedEditable, SitePackages};

View file

@ -23,6 +23,7 @@ uv-normalize = { workspace = true }
uv-resolver = { workspace = true, features = ["clap"] }
uv-types = { workspace = true }
uv-warnings = { workspace = true }
uv-configuration = { workspace = true }
anyhow = { workspace = true }
configparser = { workspace = true }

View file

@ -10,9 +10,10 @@ use distribution_types::{Dist, DistributionMetadata, LocalEditable};
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
use pypi_types::Metadata23;
use uv_client::RegistryClient;
use uv_configuration::{Constraints, Overrides};
use uv_distribution::{DistributionDatabase, Reporter};
use uv_resolver::{InMemoryIndex, MetadataResponse};
use uv_types::{BuildContext, Constraints, Overrides, RequestedRequirements};
use uv_types::{BuildContext, RequestedRequirements};
/// A resolver for resolving lookahead requirements from direct URLs.
///

View file

@ -9,9 +9,9 @@ use distribution_types::{FlatIndexLocation, IndexUrl};
use pep508_rs::{Requirement, RequirementsTxtRequirement};
use requirements_txt::{EditableRequirement, FindLink, RequirementsTxt};
use uv_client::BaseClientBuilder;
use uv_configuration::{NoBinary, NoBuild};
use uv_fs::Simplified;
use uv_normalize::{ExtraName, PackageName};
use uv_types::{NoBinary, NoBuild};
use crate::pyproject::{Pep621Metadata, PyProjectToml};
use crate::{ExtrasSpecification, RequirementsSource};

View file

@ -4,8 +4,8 @@ use anyhow::Result;
use requirements_txt::RequirementsTxt;
use uv_client::{BaseClientBuilder, Connectivity};
use uv_configuration::Upgrade;
use uv_resolver::{Preference, PreferenceError};
use uv_types::Upgrade;
/// Load the preferred requirements from an existing lockfile, applying the upgrade strategy.
pub async fn read_lockfile(

View file

@ -30,6 +30,7 @@ uv-interpreter = { workspace = true }
uv-normalize = { workspace = true }
uv-types = { workspace = true }
uv-warnings = { workspace = true }
uv-configuration = { workspace = true }
anstream = { workspace = true }
anyhow = { workspace = true }

View file

@ -1,6 +1,6 @@
use pep508_rs::PackageName;
use rustc_hash::FxHashSet;
use uv_types::{Reinstall, Upgrade};
use uv_configuration::{Reinstall, Upgrade};
/// Tracks locally installed packages that should not be selected during resolution.
#[derive(Debug, Default, Clone)]

View file

@ -1,8 +1,9 @@
use distribution_types::LocalEditable;
use pep508_rs::{MarkerEnvironment, Requirement};
use pypi_types::Metadata23;
use uv_configuration::{Constraints, Overrides};
use uv_normalize::PackageName;
use uv_types::{Constraints, Overrides, RequestedRequirements};
use uv_types::RequestedRequirements;
use crate::{preferences::Preference, Exclusions};

View file

@ -5,8 +5,8 @@ use tracing::warn;
use distribution_types::Verbatim;
use pep440_rs::Version;
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
use uv_configuration::{Constraints, Overrides};
use uv_normalize::{ExtraName, PackageName};
use uv_types::{Constraints, Overrides};
use crate::pubgrub::specifier::PubGrubSpecifier;
use crate::pubgrub::PubGrubPackage;

View file

@ -27,10 +27,11 @@ use platform_tags::Tags;
use pypi_types::Metadata23;
pub(crate) use urls::Urls;
use uv_client::{FlatIndex, RegistryClient};
use uv_configuration::{Constraints, Overrides};
use uv_distribution::DistributionDatabase;
use uv_interpreter::Interpreter;
use uv_normalize::PackageName;
use uv_types::{BuildContext, Constraints, InstalledPackagesProvider, Overrides};
use uv_types::{BuildContext, InstalledPackagesProvider};
use crate::candidate_selector::{CandidateDist, CandidateSelector};
use crate::editables::Editables;

View file

@ -7,9 +7,10 @@ use distribution_types::{Dist, IndexLocations};
use platform_tags::Tags;
use pypi_types::Metadata23;
use uv_client::{FlatIndex, RegistryClient};
use uv_configuration::{NoBinary, NoBuild};
use uv_distribution::DistributionDatabase;
use uv_normalize::PackageName;
use uv_types::{BuildContext, NoBinary, NoBuild};
use uv_types::BuildContext;
use crate::python_requirement::PythonRequirement;
use crate::version_map::VersionMap;

View file

@ -15,8 +15,8 @@ use platform_tags::Tags;
use pypi_types::{Hashes, Yanked};
use rkyv::{de::deserializers::SharedDeserializeMap, Deserialize};
use uv_client::{FlatDistributions, OwnedArchive, SimpleMetadata, VersionFiles};
use uv_configuration::{NoBinary, NoBuild};
use uv_normalize::PackageName;
use uv_types::{NoBinary, NoBuild};
use uv_warnings::warn_user_once;
use crate::{python_requirement::PythonRequirement, yanks::AllowedYanks};

View file

@ -15,15 +15,13 @@ use pep508_rs::{MarkerEnvironment, Requirement, StringVersion};
use platform_tags::{Arch, Os, Platform, Tags};
use uv_cache::Cache;
use uv_client::{FlatIndex, RegistryClientBuilder};
use uv_configuration::{BuildKind, Constraints, NoBinary, NoBuild, Overrides, SetupPyStrategy};
use uv_interpreter::{find_default_python, Interpreter, PythonEnvironment};
use uv_resolver::{
DisplayResolutionGraph, Exclusions, InMemoryIndex, Manifest, Options, OptionsBuilder,
PreReleaseMode, Preference, ResolutionGraph, ResolutionMode, Resolver,
};
use uv_types::{
BuildContext, BuildIsolation, BuildKind, Constraints, EmptyInstalledPackages, NoBinary,
NoBuild, Overrides, SetupPyStrategy, SourceBuildTrait,
};
use uv_types::{BuildContext, BuildIsolation, EmptyInstalledPackages, SourceBuildTrait};
// Exclude any packages uploaded after this date.
static EXCLUDE_NEWER: Lazy<DateTime<Utc>> = Lazy::new(|| {

View file

@ -19,6 +19,7 @@ pep508_rs = { workspace = true }
uv-cache = { workspace = true }
uv-interpreter = { workspace = true }
uv-normalize = { workspace = true }
uv-configuration = { workspace = true }
anyhow = { workspace = true }
clap = { workspace = true, features = ["derive"], optional = true }

View file

@ -0,0 +1,15 @@
use uv_interpreter::PythonEnvironment;
/// Whether to enforce build isolation when building source distributions.
#[derive(Debug, Copy, Clone)]
pub enum BuildIsolation<'a> {
Isolated,
Shared(&'a PythonEnvironment),
}
impl<'a> BuildIsolation<'a> {
/// Returns `true` if build isolation is enforced.
pub fn is_isolated(&self) -> bool {
matches!(self, Self::Isolated)
}
}

View file

@ -1,20 +1,10 @@
//! Fundamental types shared across `uv` crates.
pub use build_options::*;
pub use config_settings::*;
pub use constraints::*;
pub use builds::*;
pub use downloads::*;
pub use name_specifiers::*;
pub use overrides::*;
pub use package_options::*;
pub use requirements::*;
pub use traits::*;
mod build_options;
mod config_settings;
mod constraints;
mod builds;
mod downloads;
mod name_specifiers;
mod overrides;
mod package_options;
mod requirements;
mod traits;

View file

@ -9,7 +9,8 @@ use pep508_rs::{PackageName, Requirement};
use uv_cache::Cache;
use uv_interpreter::{Interpreter, PythonEnvironment};
use crate::{BuildIsolation, BuildKind, NoBinary, NoBuild, SetupPyStrategy};
use crate::BuildIsolation;
use uv_configuration::{BuildKind, NoBinary, NoBuild, SetupPyStrategy};
/// Avoids cyclic crate dependencies between resolver, installer and builder.
///

View file

@ -32,6 +32,7 @@ uv-normalize = { workspace = true }
uv-requirements = { workspace = true }
uv-resolver = { workspace = true, features = ["clap"] }
uv-types = { workspace = true, features = ["clap"] }
uv-configuration = { workspace = true, features = ["clap"] }
uv-virtualenv = { workspace = true }
uv-warnings = { workspace = true }

View file

@ -22,6 +22,10 @@ use uv_cache::Cache;
use uv_client::{
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder,
};
use uv_configuration::{
ConfigSettings, Constraints, IndexStrategy, NoBinary, NoBuild, Overrides, SetupPyStrategy,
Upgrade,
};
use uv_dispatch::BuildDispatch;
use uv_fs::Simplified;
use uv_installer::Downloader;
@ -35,10 +39,7 @@ use uv_resolver::{
AnnotationStyle, DependencyMode, DisplayResolutionGraph, Exclusions, InMemoryIndex, Manifest,
OptionsBuilder, PreReleaseMode, PythonRequirement, ResolutionMode, Resolver,
};
use uv_types::{
BuildIsolation, ConfigSettings, Constraints, EmptyInstalledPackages, InFlight, IndexStrategy,
NoBinary, NoBuild, Overrides, SetupPyStrategy, Upgrade,
};
use uv_types::{BuildIsolation, EmptyInstalledPackages, InFlight};
use uv_warnings::warn_user;
use crate::commands::reporters::{DownloadReporter, ResolverReporter};

View file

@ -24,6 +24,10 @@ use uv_client::{
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClient,
RegistryClientBuilder,
};
use uv_configuration::{
ConfigSettings, Constraints, IndexStrategy, NoBinary, NoBuild, Overrides, Reinstall,
SetupPyStrategy, Upgrade,
};
use uv_dispatch::BuildDispatch;
use uv_fs::Simplified;
use uv_installer::{BuiltEditable, Downloader, Plan, Planner, ResolvedEditable, SitePackages};
@ -37,10 +41,7 @@ use uv_resolver::{
DependencyMode, Exclusions, InMemoryIndex, Manifest, Options, OptionsBuilder, PreReleaseMode,
Preference, ResolutionGraph, ResolutionMode, Resolver,
};
use uv_types::{
BuildIsolation, ConfigSettings, Constraints, InFlight, IndexStrategy, NoBinary, NoBuild,
Overrides, Reinstall, SetupPyStrategy, Upgrade,
};
use uv_types::{BuildIsolation, InFlight};
use uv_warnings::warn_user;
use crate::commands::reporters::{DownloadReporter, InstallReporter, ResolverReporter};

View file

@ -19,6 +19,9 @@ use uv_client::{
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClient,
RegistryClientBuilder,
};
use uv_configuration::{
ConfigSettings, IndexStrategy, NoBinary, NoBuild, Reinstall, SetupPyStrategy,
};
use uv_dispatch::BuildDispatch;
use uv_fs::Simplified;
use uv_installer::{is_dynamic, Downloader, Plan, Planner, ResolvedEditable, SitePackages};
@ -28,10 +31,7 @@ use uv_requirements::{
SourceTreeResolver,
};
use uv_resolver::{DependencyMode, InMemoryIndex, Manifest, OptionsBuilder, Resolver};
use uv_types::{
BuildIsolation, ConfigSettings, EmptyInstalledPackages, InFlight, IndexStrategy, NoBinary,
NoBuild, Reinstall, SetupPyStrategy,
};
use uv_types::{BuildIsolation, EmptyInstalledPackages, InFlight};
use uv_warnings::warn_user;
use crate::commands::reporters::{DownloadReporter, InstallReporter, ResolverReporter};

View file

@ -16,14 +16,12 @@ use pep508_rs::Requirement;
use uv_auth::{KeyringProvider, GLOBAL_AUTH_STORE};
use uv_cache::Cache;
use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder};
use uv_configuration::{ConfigSettings, IndexStrategy, NoBinary, NoBuild, SetupPyStrategy};
use uv_dispatch::BuildDispatch;
use uv_fs::Simplified;
use uv_interpreter::{find_default_python, find_requested_python, Error};
use uv_resolver::{InMemoryIndex, OptionsBuilder};
use uv_types::{
BuildContext, BuildIsolation, ConfigSettings, InFlight, IndexStrategy, NoBinary, NoBuild,
SetupPyStrategy,
};
use uv_types::{BuildContext, BuildIsolation, InFlight};
use crate::commands::ExitStatus;
use crate::printer::Printer;

View file

@ -16,15 +16,15 @@ use distribution_types::{FlatIndexLocation, IndexLocations, IndexUrl};
use uv_auth::KeyringProvider;
use uv_cache::{Cache, CacheArgs, Refresh};
use uv_client::Connectivity;
use uv_configuration::{
ConfigSettingEntry, ConfigSettings, NoBuild, PackageNameSpecifier, Reinstall, SetupPyStrategy,
Upgrade,
};
use uv_configuration::{IndexStrategy, NoBinary};
use uv_interpreter::PythonVersion;
use uv_normalize::{ExtraName, PackageName};
use uv_requirements::{ExtrasSpecification, RequirementsSource};
use uv_resolver::{AnnotationStyle, DependencyMode, PreReleaseMode, ResolutionMode};
use uv_types::{
ConfigSettingEntry, ConfigSettings, NoBuild, PackageNameSpecifier, Reinstall, SetupPyStrategy,
Upgrade,
};
use uv_types::{IndexStrategy, NoBinary};
use crate::commands::{extra_name_with_clap_error, ExitStatus, ListFormat, VersionFormat};
use crate::compat::CompatArgs;