mirror of
https://github.com/astral-sh/uv.git
synced 2025-11-01 12:24:15 +00:00
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:
parent
90735660cb
commit
1512e07a2e
50 changed files with 155 additions and 89 deletions
30
Cargo.lock
generated
30
Cargo.lock
generated
|
|
@ -2952,9 +2952,9 @@ dependencies = [
|
||||||
"unscanny",
|
"unscanny",
|
||||||
"url",
|
"url",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
"uv-types",
|
|
||||||
"uv-warnings",
|
"uv-warnings",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -4328,6 +4328,7 @@ dependencies = [
|
||||||
"uv-auth",
|
"uv-auth",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-dispatch",
|
"uv-dispatch",
|
||||||
"uv-distribution",
|
"uv-distribution",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
|
|
@ -4384,6 +4385,7 @@ dependencies = [
|
||||||
"tokio",
|
"tokio",
|
||||||
"toml",
|
"toml",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
"uv-configuration",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
"uv-interpreter",
|
"uv-interpreter",
|
||||||
"uv-types",
|
"uv-types",
|
||||||
|
|
@ -4458,14 +4460,30 @@ dependencies = [
|
||||||
"urlencoding",
|
"urlencoding",
|
||||||
"uv-auth",
|
"uv-auth",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
|
"uv-configuration",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
"uv-types",
|
|
||||||
"uv-version",
|
"uv-version",
|
||||||
"uv-warnings",
|
"uv-warnings",
|
||||||
"webpki-roots",
|
"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]]
|
[[package]]
|
||||||
name = "uv-dev"
|
name = "uv-dev"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
|
|
@ -4500,6 +4518,7 @@ dependencies = [
|
||||||
"uv-build",
|
"uv-build",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-dispatch",
|
"uv-dispatch",
|
||||||
"uv-installer",
|
"uv-installer",
|
||||||
"uv-interpreter",
|
"uv-interpreter",
|
||||||
|
|
@ -4523,9 +4542,9 @@ dependencies = [
|
||||||
"uv-build",
|
"uv-build",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-installer",
|
"uv-installer",
|
||||||
"uv-interpreter",
|
"uv-interpreter",
|
||||||
"uv-requirements",
|
|
||||||
"uv-resolver",
|
"uv-resolver",
|
||||||
"uv-types",
|
"uv-types",
|
||||||
]
|
]
|
||||||
|
|
@ -4560,6 +4579,7 @@ dependencies = [
|
||||||
"url",
|
"url",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-extract",
|
"uv-extract",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
"uv-git",
|
"uv-git",
|
||||||
|
|
@ -4652,6 +4672,7 @@ dependencies = [
|
||||||
"url",
|
"url",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-distribution",
|
"uv-distribution",
|
||||||
"uv-extract",
|
"uv-extract",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
|
|
@ -4725,6 +4746,7 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
"url",
|
"url",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-distribution",
|
"uv-distribution",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
|
|
@ -4771,6 +4793,7 @@ dependencies = [
|
||||||
"url",
|
"url",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-client",
|
"uv-client",
|
||||||
|
"uv-configuration",
|
||||||
"uv-distribution",
|
"uv-distribution",
|
||||||
"uv-interpreter",
|
"uv-interpreter",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
|
|
@ -4792,6 +4815,7 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
|
"uv-configuration",
|
||||||
"uv-interpreter",
|
"uv-interpreter",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ uv-normalize = { path = "crates/uv-normalize" }
|
||||||
uv-requirements = { path = "crates/uv-requirements" }
|
uv-requirements = { path = "crates/uv-requirements" }
|
||||||
uv-resolver = { path = "crates/uv-resolver" }
|
uv-resolver = { path = "crates/uv-resolver" }
|
||||||
uv-types = { path = "crates/uv-types" }
|
uv-types = { path = "crates/uv-types" }
|
||||||
|
uv-configuration = { path = "crates/uv-configuration" }
|
||||||
uv-trampoline = { path = "crates/uv-trampoline" }
|
uv-trampoline = { path = "crates/uv-trampoline" }
|
||||||
uv-version = { path = "crates/uv-version" }
|
uv-version = { path = "crates/uv-version" }
|
||||||
uv-virtualenv = { path = "crates/uv-virtualenv" }
|
uv-virtualenv = { path = "crates/uv-virtualenv" }
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ pep508_rs = { workspace = true, features = ["rkyv", "serde", "non-pep508-extensi
|
||||||
uv-client = { workspace = true }
|
uv-client = { workspace = true }
|
||||||
uv-fs = { workspace = true }
|
uv-fs = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-types = { workspace = true }
|
uv-configuration = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
uv-warnings = { workspace = true }
|
||||||
|
|
||||||
fs-err = { workspace = true }
|
fs-err = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,9 @@ use pep508_rs::{
|
||||||
#[cfg(feature = "http")]
|
#[cfg(feature = "http")]
|
||||||
use uv_client::BaseClient;
|
use uv_client::BaseClient;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
|
use uv_configuration::{NoBinary, NoBuild, PackageNameSpecifier};
|
||||||
use uv_fs::{normalize_url_path, Simplified};
|
use uv_fs::{normalize_url_path, Simplified};
|
||||||
use uv_normalize::ExtraName;
|
use uv_normalize::ExtraName;
|
||||||
use uv_types::{NoBinary, NoBuild, PackageNameSpecifier};
|
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
||||||
/// We emit one of those for each requirements.txt entry
|
/// We emit one of those for each requirements.txt entry
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ pep508_rs = { workspace = true }
|
||||||
uv-fs = { workspace = true }
|
uv-fs = { workspace = true }
|
||||||
uv-interpreter = { workspace = true }
|
uv-interpreter = { workspace = true }
|
||||||
uv-types = { workspace = true, features = ["serde"] }
|
uv-types = { workspace = true, features = ["serde"] }
|
||||||
|
uv-configuration = { workspace = true, features = ["serde"] }
|
||||||
uv-virtualenv = { workspace = true }
|
uv-virtualenv = { workspace = true }
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -28,11 +28,10 @@ use tracing::{debug, info_span, instrument, Instrument};
|
||||||
use distribution_types::Resolution;
|
use distribution_types::Resolution;
|
||||||
use pep440_rs::Version;
|
use pep440_rs::Version;
|
||||||
use pep508_rs::{PackageName, Requirement};
|
use pep508_rs::{PackageName, Requirement};
|
||||||
|
use uv_configuration::{BuildKind, ConfigSettings, SetupPyStrategy};
|
||||||
use uv_fs::{PythonExt, Simplified};
|
use uv_fs::{PythonExt, Simplified};
|
||||||
use uv_interpreter::{Interpreter, PythonEnvironment};
|
use uv_interpreter::{Interpreter, PythonEnvironment};
|
||||||
use uv_types::{
|
use uv_types::{BuildContext, BuildIsolation, SourceBuildTrait};
|
||||||
BuildContext, BuildIsolation, BuildKind, ConfigSettings, SetupPyStrategy, SourceBuildTrait,
|
|
||||||
};
|
|
||||||
|
|
||||||
/// e.g. `pygraphviz/graphviz_wrap.c:3020:10: fatal error: graphviz/cgraph.h: No such file or directory`
|
/// 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(|| {
|
static MISSING_HEADER_RE: Lazy<Regex> = Lazy::new(|| {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ uv-auth = { workspace = true }
|
||||||
uv-cache = { workspace = true }
|
uv-cache = { workspace = true }
|
||||||
uv-fs = { workspace = true, features = ["tokio"] }
|
uv-fs = { workspace = true, features = ["tokio"] }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-types = { workspace = true }
|
uv-configuration = { workspace = true }
|
||||||
uv-version = { workspace = true }
|
uv-version = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
uv-warnings = { workspace = true }
|
||||||
pypi-types = { workspace = true }
|
pypi-types = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ use pep508_rs::VerbatimUrl;
|
||||||
use platform_tags::Tags;
|
use platform_tags::Tags;
|
||||||
use pypi_types::Hashes;
|
use pypi_types::Hashes;
|
||||||
use uv_cache::{Cache, CacheBucket};
|
use uv_cache::{Cache, CacheBucket};
|
||||||
|
use uv_configuration::{NoBinary, NoBuild};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_types::{NoBinary, NoBuild};
|
|
||||||
|
|
||||||
use crate::cached_client::{CacheControl, CachedClientError};
|
use crate::cached_client::{CacheControl, CachedClientError};
|
||||||
use crate::html::SimpleHtml;
|
use crate::html::SimpleHtml;
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ use platform_tags::Platform;
|
||||||
use pypi_types::{Metadata23, SimpleJson};
|
use pypi_types::{Metadata23, SimpleJson};
|
||||||
use uv_auth::KeyringProvider;
|
use uv_auth::KeyringProvider;
|
||||||
use uv_cache::{Cache, CacheBucket, WheelCache};
|
use uv_cache::{Cache, CacheBucket, WheelCache};
|
||||||
|
use uv_configuration::IndexStrategy;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_types::IndexStrategy;
|
|
||||||
|
|
||||||
use crate::base_client::{BaseClient, BaseClientBuilder};
|
use crate::base_client::{BaseClient, BaseClientBuilder};
|
||||||
use crate::cached_client::CacheControl;
|
use crate::cached_client::CacheControl;
|
||||||
|
|
|
||||||
30
crates/uv-configuration/Cargo.toml
Normal file
30
crates/uv-configuration/Cargo.toml
Normal 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"]
|
||||||
|
|
@ -1,24 +1,9 @@
|
||||||
use std::fmt::{Display, Formatter};
|
use std::fmt::{Display, Formatter};
|
||||||
|
|
||||||
use pep508_rs::PackageName;
|
use pep508_rs::PackageName;
|
||||||
use uv_interpreter::PythonEnvironment;
|
|
||||||
|
|
||||||
use crate::{PackageNameSpecifier, PackageNameSpecifiers};
|
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`.
|
/// The strategy to use when building source distributions that lack a `pyproject.toml`.
|
||||||
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
|
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
|
||||||
pub enum SetupPyStrategy {
|
pub enum SetupPyStrategy {
|
||||||
13
crates/uv-configuration/src/lib.rs
Normal file
13
crates/uv-configuration/src/lib.rs
Normal 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;
|
||||||
|
|
@ -29,6 +29,7 @@ uv-interpreter = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-resolver = { workspace = true }
|
uv-resolver = { workspace = true }
|
||||||
uv-types = { 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
|
# 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.
|
# dependencies, to ensure that we're forced to think twice before including them in other crates.
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,11 @@ use rustc_hash::FxHashMap;
|
||||||
use uv_build::{SourceBuild, SourceBuildContext};
|
use uv_build::{SourceBuild, SourceBuildContext};
|
||||||
use uv_cache::{Cache, CacheArgs};
|
use uv_cache::{Cache, CacheArgs};
|
||||||
use uv_client::{FlatIndex, RegistryClientBuilder};
|
use uv_client::{FlatIndex, RegistryClientBuilder};
|
||||||
|
use uv_configuration::{BuildKind, ConfigSettings, NoBinary, NoBuild, SetupPyStrategy};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_interpreter::PythonEnvironment;
|
use uv_interpreter::PythonEnvironment;
|
||||||
use uv_resolver::InMemoryIndex;
|
use uv_resolver::InMemoryIndex;
|
||||||
use uv_types::NoBinary;
|
use uv_types::{BuildContext, BuildIsolation, InFlight};
|
||||||
use uv_types::{
|
|
||||||
BuildContext, BuildIsolation, BuildKind, ConfigSettings, InFlight, NoBuild, SetupPyStrategy,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub(crate) struct BuildArgs {
|
pub(crate) struct BuildArgs {
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,12 @@ use distribution_types::{FlatIndexLocation, IndexLocations, IndexUrl, Resolution
|
||||||
use pep508_rs::Requirement;
|
use pep508_rs::Requirement;
|
||||||
use uv_cache::{Cache, CacheArgs};
|
use uv_cache::{Cache, CacheArgs};
|
||||||
use uv_client::{FlatIndex, FlatIndexClient, RegistryClientBuilder};
|
use uv_client::{FlatIndex, FlatIndexClient, RegistryClientBuilder};
|
||||||
|
use uv_configuration::{ConfigSettings, NoBinary, NoBuild, SetupPyStrategy};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_installer::SitePackages;
|
use uv_installer::SitePackages;
|
||||||
use uv_interpreter::PythonEnvironment;
|
use uv_interpreter::PythonEnvironment;
|
||||||
use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver};
|
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)]
|
#[derive(ValueEnum, Default, Clone)]
|
||||||
pub(crate) enum ResolveCliFormat {
|
pub(crate) enum ResolveCliFormat {
|
||||||
|
|
|
||||||
|
|
@ -15,12 +15,12 @@ use pep440_rs::{Version, VersionSpecifier, VersionSpecifiers};
|
||||||
use pep508_rs::{Requirement, VersionOrUrl};
|
use pep508_rs::{Requirement, VersionOrUrl};
|
||||||
use uv_cache::{Cache, CacheArgs};
|
use uv_cache::{Cache, CacheArgs};
|
||||||
use uv_client::{FlatIndex, OwnedArchive, RegistryClient, RegistryClientBuilder};
|
use uv_client::{FlatIndex, OwnedArchive, RegistryClient, RegistryClientBuilder};
|
||||||
|
use uv_configuration::{ConfigSettings, NoBinary, NoBuild, SetupPyStrategy};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_interpreter::PythonEnvironment;
|
use uv_interpreter::PythonEnvironment;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_resolver::InMemoryIndex;
|
use uv_resolver::InMemoryIndex;
|
||||||
use uv_types::NoBinary;
|
use uv_types::{BuildContext, BuildIsolation, InFlight};
|
||||||
use uv_types::{BuildContext, BuildIsolation, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub(crate) struct ResolveManyArgs {
|
pub(crate) struct ResolveManyArgs {
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@ uv-cache = { workspace = true }
|
||||||
uv-client = { workspace = true }
|
uv-client = { workspace = true }
|
||||||
uv-installer = { workspace = true }
|
uv-installer = { workspace = true }
|
||||||
uv-interpreter = { workspace = true }
|
uv-interpreter = { workspace = true }
|
||||||
uv-requirements = { workspace = true }
|
|
||||||
uv-resolver = { workspace = true }
|
uv-resolver = { workspace = true }
|
||||||
uv-types = { workspace = true }
|
uv-types = { workspace = true }
|
||||||
|
uv-configuration = { workspace = true }
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
futures = { workspace = true }
|
futures = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -17,13 +17,11 @@ use pep508_rs::Requirement;
|
||||||
use uv_build::{SourceBuild, SourceBuildContext};
|
use uv_build::{SourceBuild, SourceBuildContext};
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{FlatIndex, RegistryClient};
|
use uv_client::{FlatIndex, RegistryClient};
|
||||||
|
use uv_configuration::{BuildKind, ConfigSettings, NoBinary, NoBuild, Reinstall, SetupPyStrategy};
|
||||||
use uv_installer::{Downloader, Installer, Plan, Planner, SitePackages};
|
use uv_installer::{Downloader, Installer, Plan, Planner, SitePackages};
|
||||||
use uv_interpreter::{Interpreter, PythonEnvironment};
|
use uv_interpreter::{Interpreter, PythonEnvironment};
|
||||||
use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver};
|
use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver};
|
||||||
use uv_types::{
|
use uv_types::{BuildContext, BuildIsolation, EmptyInstalledPackages, InFlight};
|
||||||
BuildContext, BuildIsolation, BuildKind, ConfigSettings, EmptyInstalledPackages, InFlight,
|
|
||||||
NoBinary, NoBuild, Reinstall, SetupPyStrategy,
|
|
||||||
};
|
|
||||||
|
|
||||||
/// The main implementation of [`BuildContext`], used by the CLI, see [`BuildContext`]
|
/// The main implementation of [`BuildContext`], used by the CLI, see [`BuildContext`]
|
||||||
/// documentation.
|
/// documentation.
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ uv-fs = { workspace = true, features = ["tokio"] }
|
||||||
uv-git = { workspace = true, features = ["vendored-openssl"] }
|
uv-git = { workspace = true, features = ["vendored-openssl"] }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-types = { workspace = true }
|
uv-types = { workspace = true }
|
||||||
|
uv-configuration = { workspace = true }
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
fs-err = { workspace = true }
|
fs-err = { workspace = true }
|
||||||
|
|
@ -46,4 +47,3 @@ tokio-util = { workspace = true, features = ["compat"] }
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
url = { workspace = true }
|
url = { workspace = true }
|
||||||
zip = { workspace = true }
|
zip = { workspace = true }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,9 @@ use platform_tags::Tags;
|
||||||
use pypi_types::Metadata23;
|
use pypi_types::Metadata23;
|
||||||
use uv_cache::{ArchiveTimestamp, CacheBucket, CacheEntry, CachedByTimestamp, WheelCache};
|
use uv_cache::{ArchiveTimestamp, CacheBucket, CacheEntry, CachedByTimestamp, WheelCache};
|
||||||
use uv_client::{CacheControl, CachedClientError, Connectivity, RegistryClient};
|
use uv_client::{CacheControl, CachedClientError, Connectivity, RegistryClient};
|
||||||
|
use uv_configuration::{NoBinary, NoBuild};
|
||||||
use uv_fs::write_atomic;
|
use uv_fs::write_atomic;
|
||||||
use uv_types::{BuildContext, NoBinary, NoBuild};
|
use uv_types::BuildContext;
|
||||||
|
|
||||||
use crate::locks::Locks;
|
use crate::locks::Locks;
|
||||||
use crate::{Error, LocalWheel, Reporter, SourceDistributionBuilder};
|
use crate::{Error, LocalWheel, Reporter, SourceDistributionBuilder};
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,9 @@ use uv_cache::{
|
||||||
use uv_client::{
|
use uv_client::{
|
||||||
CacheControl, CachedClientError, Connectivity, DataWithCachePolicy, RegistryClient,
|
CacheControl, CachedClientError, Connectivity, DataWithCachePolicy, RegistryClient,
|
||||||
};
|
};
|
||||||
|
use uv_configuration::{BuildKind, NoBuild};
|
||||||
use uv_fs::write_atomic;
|
use uv_fs::write_atomic;
|
||||||
use uv_types::{BuildContext, BuildKind, NoBuild, SourceBuildTrait};
|
use uv_types::{BuildContext, SourceBuildTrait};
|
||||||
|
|
||||||
use crate::error::Error;
|
use crate::error::Error;
|
||||||
use crate::git::{fetch_git_archive, resolve_precise};
|
use crate::git::{fetch_git_archive, resolve_precise};
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ uv-interpreter = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-types = { workspace = true }
|
uv-types = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
uv-warnings = { workspace = true }
|
||||||
|
uv-configuration = { workspace = true }
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
async-channel = { workspace = true }
|
async-channel = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,10 @@ use distribution_types::{
|
||||||
use pep508_rs::{Requirement, VersionOrUrl};
|
use pep508_rs::{Requirement, VersionOrUrl};
|
||||||
use platform_tags::Tags;
|
use platform_tags::Tags;
|
||||||
use uv_cache::{ArchiveTarget, ArchiveTimestamp, Cache, CacheBucket, WheelCache};
|
use uv_cache::{ArchiveTarget, ArchiveTimestamp, Cache, CacheBucket, WheelCache};
|
||||||
|
use uv_configuration::{NoBinary, Reinstall};
|
||||||
use uv_distribution::{BuiltWheelIndex, RegistryWheelIndex};
|
use uv_distribution::{BuiltWheelIndex, RegistryWheelIndex};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_interpreter::PythonEnvironment;
|
use uv_interpreter::PythonEnvironment;
|
||||||
use uv_types::{NoBinary, Reinstall};
|
|
||||||
|
|
||||||
use crate::{ResolvedEditable, SitePackages};
|
use crate::{ResolvedEditable, SitePackages};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ uv-normalize = { workspace = true }
|
||||||
uv-resolver = { workspace = true, features = ["clap"] }
|
uv-resolver = { workspace = true, features = ["clap"] }
|
||||||
uv-types = { workspace = true }
|
uv-types = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
uv-warnings = { workspace = true }
|
||||||
|
uv-configuration = { workspace = true }
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
configparser = { workspace = true }
|
configparser = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,10 @@ use distribution_types::{Dist, DistributionMetadata, LocalEditable};
|
||||||
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
|
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
|
||||||
use pypi_types::Metadata23;
|
use pypi_types::Metadata23;
|
||||||
use uv_client::RegistryClient;
|
use uv_client::RegistryClient;
|
||||||
|
use uv_configuration::{Constraints, Overrides};
|
||||||
use uv_distribution::{DistributionDatabase, Reporter};
|
use uv_distribution::{DistributionDatabase, Reporter};
|
||||||
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
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.
|
/// A resolver for resolving lookahead requirements from direct URLs.
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ use distribution_types::{FlatIndexLocation, IndexUrl};
|
||||||
use pep508_rs::{Requirement, RequirementsTxtRequirement};
|
use pep508_rs::{Requirement, RequirementsTxtRequirement};
|
||||||
use requirements_txt::{EditableRequirement, FindLink, RequirementsTxt};
|
use requirements_txt::{EditableRequirement, FindLink, RequirementsTxt};
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
|
use uv_configuration::{NoBinary, NoBuild};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
use uv_types::{NoBinary, NoBuild};
|
|
||||||
|
|
||||||
use crate::pyproject::{Pep621Metadata, PyProjectToml};
|
use crate::pyproject::{Pep621Metadata, PyProjectToml};
|
||||||
use crate::{ExtrasSpecification, RequirementsSource};
|
use crate::{ExtrasSpecification, RequirementsSource};
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ use anyhow::Result;
|
||||||
|
|
||||||
use requirements_txt::RequirementsTxt;
|
use requirements_txt::RequirementsTxt;
|
||||||
use uv_client::{BaseClientBuilder, Connectivity};
|
use uv_client::{BaseClientBuilder, Connectivity};
|
||||||
|
use uv_configuration::Upgrade;
|
||||||
use uv_resolver::{Preference, PreferenceError};
|
use uv_resolver::{Preference, PreferenceError};
|
||||||
use uv_types::Upgrade;
|
|
||||||
|
|
||||||
/// Load the preferred requirements from an existing lockfile, applying the upgrade strategy.
|
/// Load the preferred requirements from an existing lockfile, applying the upgrade strategy.
|
||||||
pub async fn read_lockfile(
|
pub async fn read_lockfile(
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ uv-interpreter = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-types = { workspace = true }
|
uv-types = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
uv-warnings = { workspace = true }
|
||||||
|
uv-configuration = { workspace = true }
|
||||||
|
|
||||||
anstream = { workspace = true }
|
anstream = { workspace = true }
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use pep508_rs::PackageName;
|
use pep508_rs::PackageName;
|
||||||
use rustc_hash::FxHashSet;
|
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.
|
/// Tracks locally installed packages that should not be selected during resolution.
|
||||||
#[derive(Debug, Default, Clone)]
|
#[derive(Debug, Default, Clone)]
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
use distribution_types::LocalEditable;
|
use distribution_types::LocalEditable;
|
||||||
use pep508_rs::{MarkerEnvironment, Requirement};
|
use pep508_rs::{MarkerEnvironment, Requirement};
|
||||||
use pypi_types::Metadata23;
|
use pypi_types::Metadata23;
|
||||||
|
use uv_configuration::{Constraints, Overrides};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_types::{Constraints, Overrides, RequestedRequirements};
|
use uv_types::RequestedRequirements;
|
||||||
|
|
||||||
use crate::{preferences::Preference, Exclusions};
|
use crate::{preferences::Preference, Exclusions};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ use tracing::warn;
|
||||||
use distribution_types::Verbatim;
|
use distribution_types::Verbatim;
|
||||||
use pep440_rs::Version;
|
use pep440_rs::Version;
|
||||||
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
|
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
|
||||||
|
use uv_configuration::{Constraints, Overrides};
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
use uv_types::{Constraints, Overrides};
|
|
||||||
|
|
||||||
use crate::pubgrub::specifier::PubGrubSpecifier;
|
use crate::pubgrub::specifier::PubGrubSpecifier;
|
||||||
use crate::pubgrub::PubGrubPackage;
|
use crate::pubgrub::PubGrubPackage;
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,11 @@ use platform_tags::Tags;
|
||||||
use pypi_types::Metadata23;
|
use pypi_types::Metadata23;
|
||||||
pub(crate) use urls::Urls;
|
pub(crate) use urls::Urls;
|
||||||
use uv_client::{FlatIndex, RegistryClient};
|
use uv_client::{FlatIndex, RegistryClient};
|
||||||
|
use uv_configuration::{Constraints, Overrides};
|
||||||
use uv_distribution::DistributionDatabase;
|
use uv_distribution::DistributionDatabase;
|
||||||
use uv_interpreter::Interpreter;
|
use uv_interpreter::Interpreter;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_types::{BuildContext, Constraints, InstalledPackagesProvider, Overrides};
|
use uv_types::{BuildContext, InstalledPackagesProvider};
|
||||||
|
|
||||||
use crate::candidate_selector::{CandidateDist, CandidateSelector};
|
use crate::candidate_selector::{CandidateDist, CandidateSelector};
|
||||||
use crate::editables::Editables;
|
use crate::editables::Editables;
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,10 @@ use distribution_types::{Dist, IndexLocations};
|
||||||
use platform_tags::Tags;
|
use platform_tags::Tags;
|
||||||
use pypi_types::Metadata23;
|
use pypi_types::Metadata23;
|
||||||
use uv_client::{FlatIndex, RegistryClient};
|
use uv_client::{FlatIndex, RegistryClient};
|
||||||
|
use uv_configuration::{NoBinary, NoBuild};
|
||||||
use uv_distribution::DistributionDatabase;
|
use uv_distribution::DistributionDatabase;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_types::{BuildContext, NoBinary, NoBuild};
|
use uv_types::BuildContext;
|
||||||
|
|
||||||
use crate::python_requirement::PythonRequirement;
|
use crate::python_requirement::PythonRequirement;
|
||||||
use crate::version_map::VersionMap;
|
use crate::version_map::VersionMap;
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@ use platform_tags::Tags;
|
||||||
use pypi_types::{Hashes, Yanked};
|
use pypi_types::{Hashes, Yanked};
|
||||||
use rkyv::{de::deserializers::SharedDeserializeMap, Deserialize};
|
use rkyv::{de::deserializers::SharedDeserializeMap, Deserialize};
|
||||||
use uv_client::{FlatDistributions, OwnedArchive, SimpleMetadata, VersionFiles};
|
use uv_client::{FlatDistributions, OwnedArchive, SimpleMetadata, VersionFiles};
|
||||||
|
use uv_configuration::{NoBinary, NoBuild};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_types::{NoBinary, NoBuild};
|
|
||||||
use uv_warnings::warn_user_once;
|
use uv_warnings::warn_user_once;
|
||||||
|
|
||||||
use crate::{python_requirement::PythonRequirement, yanks::AllowedYanks};
|
use crate::{python_requirement::PythonRequirement, yanks::AllowedYanks};
|
||||||
|
|
|
||||||
|
|
@ -15,15 +15,13 @@ use pep508_rs::{MarkerEnvironment, Requirement, StringVersion};
|
||||||
use platform_tags::{Arch, Os, Platform, Tags};
|
use platform_tags::{Arch, Os, Platform, Tags};
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{FlatIndex, RegistryClientBuilder};
|
use uv_client::{FlatIndex, RegistryClientBuilder};
|
||||||
|
use uv_configuration::{BuildKind, Constraints, NoBinary, NoBuild, Overrides, SetupPyStrategy};
|
||||||
use uv_interpreter::{find_default_python, Interpreter, PythonEnvironment};
|
use uv_interpreter::{find_default_python, Interpreter, PythonEnvironment};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
DisplayResolutionGraph, Exclusions, InMemoryIndex, Manifest, Options, OptionsBuilder,
|
DisplayResolutionGraph, Exclusions, InMemoryIndex, Manifest, Options, OptionsBuilder,
|
||||||
PreReleaseMode, Preference, ResolutionGraph, ResolutionMode, Resolver,
|
PreReleaseMode, Preference, ResolutionGraph, ResolutionMode, Resolver,
|
||||||
};
|
};
|
||||||
use uv_types::{
|
use uv_types::{BuildContext, BuildIsolation, EmptyInstalledPackages, SourceBuildTrait};
|
||||||
BuildContext, BuildIsolation, BuildKind, Constraints, EmptyInstalledPackages, NoBinary,
|
|
||||||
NoBuild, Overrides, SetupPyStrategy, SourceBuildTrait,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Exclude any packages uploaded after this date.
|
// Exclude any packages uploaded after this date.
|
||||||
static EXCLUDE_NEWER: Lazy<DateTime<Utc>> = Lazy::new(|| {
|
static EXCLUDE_NEWER: Lazy<DateTime<Utc>> = Lazy::new(|| {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ pep508_rs = { workspace = true }
|
||||||
uv-cache = { workspace = true }
|
uv-cache = { workspace = true }
|
||||||
uv-interpreter = { workspace = true }
|
uv-interpreter = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
|
uv-configuration = { workspace = true }
|
||||||
|
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
clap = { workspace = true, features = ["derive"], optional = true }
|
clap = { workspace = true, features = ["derive"], optional = true }
|
||||||
|
|
|
||||||
15
crates/uv-types/src/builds.rs
Normal file
15
crates/uv-types/src/builds.rs
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,20 +1,10 @@
|
||||||
//! Fundamental types shared across `uv` crates.
|
//! Fundamental types shared across `uv` crates.
|
||||||
pub use build_options::*;
|
pub use builds::*;
|
||||||
pub use config_settings::*;
|
|
||||||
pub use constraints::*;
|
|
||||||
pub use downloads::*;
|
pub use downloads::*;
|
||||||
pub use name_specifiers::*;
|
|
||||||
pub use overrides::*;
|
|
||||||
pub use package_options::*;
|
|
||||||
pub use requirements::*;
|
pub use requirements::*;
|
||||||
pub use traits::*;
|
pub use traits::*;
|
||||||
|
|
||||||
mod build_options;
|
mod builds;
|
||||||
mod config_settings;
|
|
||||||
mod constraints;
|
|
||||||
mod downloads;
|
mod downloads;
|
||||||
mod name_specifiers;
|
|
||||||
mod overrides;
|
|
||||||
mod package_options;
|
|
||||||
mod requirements;
|
mod requirements;
|
||||||
mod traits;
|
mod traits;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,8 @@ use pep508_rs::{PackageName, Requirement};
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_interpreter::{Interpreter, PythonEnvironment};
|
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.
|
/// Avoids cyclic crate dependencies between resolver, installer and builder.
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ uv-normalize = { workspace = true }
|
||||||
uv-requirements = { workspace = true }
|
uv-requirements = { workspace = true }
|
||||||
uv-resolver = { workspace = true, features = ["clap"] }
|
uv-resolver = { workspace = true, features = ["clap"] }
|
||||||
uv-types = { workspace = true, features = ["clap"] }
|
uv-types = { workspace = true, features = ["clap"] }
|
||||||
|
uv-configuration = { workspace = true, features = ["clap"] }
|
||||||
uv-virtualenv = { workspace = true }
|
uv-virtualenv = { workspace = true }
|
||||||
uv-warnings = { workspace = true }
|
uv-warnings = { workspace = true }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,10 @@ use uv_cache::Cache;
|
||||||
use uv_client::{
|
use uv_client::{
|
||||||
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder,
|
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder,
|
||||||
};
|
};
|
||||||
|
use uv_configuration::{
|
||||||
|
ConfigSettings, Constraints, IndexStrategy, NoBinary, NoBuild, Overrides, SetupPyStrategy,
|
||||||
|
Upgrade,
|
||||||
|
};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_installer::Downloader;
|
use uv_installer::Downloader;
|
||||||
|
|
@ -35,10 +39,7 @@ use uv_resolver::{
|
||||||
AnnotationStyle, DependencyMode, DisplayResolutionGraph, Exclusions, InMemoryIndex, Manifest,
|
AnnotationStyle, DependencyMode, DisplayResolutionGraph, Exclusions, InMemoryIndex, Manifest,
|
||||||
OptionsBuilder, PreReleaseMode, PythonRequirement, ResolutionMode, Resolver,
|
OptionsBuilder, PreReleaseMode, PythonRequirement, ResolutionMode, Resolver,
|
||||||
};
|
};
|
||||||
use uv_types::{
|
use uv_types::{BuildIsolation, EmptyInstalledPackages, InFlight};
|
||||||
BuildIsolation, ConfigSettings, Constraints, EmptyInstalledPackages, InFlight, IndexStrategy,
|
|
||||||
NoBinary, NoBuild, Overrides, SetupPyStrategy, Upgrade,
|
|
||||||
};
|
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
||||||
use crate::commands::reporters::{DownloadReporter, ResolverReporter};
|
use crate::commands::reporters::{DownloadReporter, ResolverReporter};
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,10 @@ use uv_client::{
|
||||||
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClient,
|
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClient,
|
||||||
RegistryClientBuilder,
|
RegistryClientBuilder,
|
||||||
};
|
};
|
||||||
|
use uv_configuration::{
|
||||||
|
ConfigSettings, Constraints, IndexStrategy, NoBinary, NoBuild, Overrides, Reinstall,
|
||||||
|
SetupPyStrategy, Upgrade,
|
||||||
|
};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_installer::{BuiltEditable, Downloader, Plan, Planner, ResolvedEditable, SitePackages};
|
use uv_installer::{BuiltEditable, Downloader, Plan, Planner, ResolvedEditable, SitePackages};
|
||||||
|
|
@ -37,10 +41,7 @@ use uv_resolver::{
|
||||||
DependencyMode, Exclusions, InMemoryIndex, Manifest, Options, OptionsBuilder, PreReleaseMode,
|
DependencyMode, Exclusions, InMemoryIndex, Manifest, Options, OptionsBuilder, PreReleaseMode,
|
||||||
Preference, ResolutionGraph, ResolutionMode, Resolver,
|
Preference, ResolutionGraph, ResolutionMode, Resolver,
|
||||||
};
|
};
|
||||||
use uv_types::{
|
use uv_types::{BuildIsolation, InFlight};
|
||||||
BuildIsolation, ConfigSettings, Constraints, InFlight, IndexStrategy, NoBinary, NoBuild,
|
|
||||||
Overrides, Reinstall, SetupPyStrategy, Upgrade,
|
|
||||||
};
|
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
||||||
use crate::commands::reporters::{DownloadReporter, InstallReporter, ResolverReporter};
|
use crate::commands::reporters::{DownloadReporter, InstallReporter, ResolverReporter};
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@ use uv_client::{
|
||||||
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClient,
|
BaseClientBuilder, Connectivity, FlatIndex, FlatIndexClient, RegistryClient,
|
||||||
RegistryClientBuilder,
|
RegistryClientBuilder,
|
||||||
};
|
};
|
||||||
|
use uv_configuration::{
|
||||||
|
ConfigSettings, IndexStrategy, NoBinary, NoBuild, Reinstall, SetupPyStrategy,
|
||||||
|
};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_installer::{is_dynamic, Downloader, Plan, Planner, ResolvedEditable, SitePackages};
|
use uv_installer::{is_dynamic, Downloader, Plan, Planner, ResolvedEditable, SitePackages};
|
||||||
|
|
@ -28,10 +31,7 @@ use uv_requirements::{
|
||||||
SourceTreeResolver,
|
SourceTreeResolver,
|
||||||
};
|
};
|
||||||
use uv_resolver::{DependencyMode, InMemoryIndex, Manifest, OptionsBuilder, Resolver};
|
use uv_resolver::{DependencyMode, InMemoryIndex, Manifest, OptionsBuilder, Resolver};
|
||||||
use uv_types::{
|
use uv_types::{BuildIsolation, EmptyInstalledPackages, InFlight};
|
||||||
BuildIsolation, ConfigSettings, EmptyInstalledPackages, InFlight, IndexStrategy, NoBinary,
|
|
||||||
NoBuild, Reinstall, SetupPyStrategy,
|
|
||||||
};
|
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
||||||
use crate::commands::reporters::{DownloadReporter, InstallReporter, ResolverReporter};
|
use crate::commands::reporters::{DownloadReporter, InstallReporter, ResolverReporter};
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,12 @@ use pep508_rs::Requirement;
|
||||||
use uv_auth::{KeyringProvider, GLOBAL_AUTH_STORE};
|
use uv_auth::{KeyringProvider, GLOBAL_AUTH_STORE};
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder};
|
use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder};
|
||||||
|
use uv_configuration::{ConfigSettings, IndexStrategy, NoBinary, NoBuild, SetupPyStrategy};
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_interpreter::{find_default_python, find_requested_python, Error};
|
use uv_interpreter::{find_default_python, find_requested_python, Error};
|
||||||
use uv_resolver::{InMemoryIndex, OptionsBuilder};
|
use uv_resolver::{InMemoryIndex, OptionsBuilder};
|
||||||
use uv_types::{
|
use uv_types::{BuildContext, BuildIsolation, InFlight};
|
||||||
BuildContext, BuildIsolation, ConfigSettings, InFlight, IndexStrategy, NoBinary, NoBuild,
|
|
||||||
SetupPyStrategy,
|
|
||||||
};
|
|
||||||
|
|
||||||
use crate::commands::ExitStatus;
|
use crate::commands::ExitStatus;
|
||||||
use crate::printer::Printer;
|
use crate::printer::Printer;
|
||||||
|
|
|
||||||
|
|
@ -16,15 +16,15 @@ use distribution_types::{FlatIndexLocation, IndexLocations, IndexUrl};
|
||||||
use uv_auth::KeyringProvider;
|
use uv_auth::KeyringProvider;
|
||||||
use uv_cache::{Cache, CacheArgs, Refresh};
|
use uv_cache::{Cache, CacheArgs, Refresh};
|
||||||
use uv_client::Connectivity;
|
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_interpreter::PythonVersion;
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
use uv_requirements::{ExtrasSpecification, RequirementsSource};
|
use uv_requirements::{ExtrasSpecification, RequirementsSource};
|
||||||
use uv_resolver::{AnnotationStyle, DependencyMode, PreReleaseMode, ResolutionMode};
|
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::commands::{extra_name_with_clap_error, ExitStatus, ListFormat, VersionFormat};
|
||||||
use crate::compat::CompatArgs;
|
use crate::compat::CompatArgs;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue