diff --git a/Cargo.lock b/Cargo.lock index f4af45d5beea..64d8ae988b01 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -407,8 +407,8 @@ dependencies = [ "uv-dispatch", "uv-distribution", "uv-git", - "uv-interpreter", "uv-resolver", + "uv-toolchain", "uv-types", ] @@ -4424,10 +4424,10 @@ dependencies = [ "uv-fs", "uv-git", "uv-installer", - "uv-interpreter", "uv-normalize", "uv-requirements", "uv-resolver", + "uv-toolchain", "uv-types", "uv-virtualenv", "uv-warnings", @@ -4483,7 +4483,7 @@ dependencies = [ "tracing", "uv-configuration", "uv-fs", - "uv-interpreter", + "uv-toolchain", "uv-types", "uv-virtualenv", ] @@ -4619,8 +4619,8 @@ dependencies = [ "uv-fs", "uv-git", "uv-installer", - "uv-interpreter", "uv-resolver", + "uv-toolchain", "uv-types", "uv-workspace", "walkdir", @@ -4645,8 +4645,8 @@ dependencies = [ "uv-distribution", "uv-git", "uv-installer", - "uv-interpreter", "uv-resolver", + "uv-toolchain", "uv-types", ] @@ -4787,57 +4787,13 @@ dependencies = [ "uv-extract", "uv-fs", "uv-git", - "uv-interpreter", "uv-normalize", + "uv-toolchain", "uv-types", "uv-warnings", "walkdir", ] -[[package]] -name = "uv-interpreter" -version = "0.0.1" -dependencies = [ - "anyhow", - "assert_fs", - "cache-key", - "configparser", - "fs-err", - "futures", - "indoc", - "install-wheel-rs", - "itertools 0.13.0", - "once_cell", - "pep440_rs", - "pep508_rs", - "platform-tags", - "pypi-types", - "regex", - "reqwest", - "reqwest-middleware", - "rmp-serde", - "same-file", - "schemars", - "serde", - "serde_json", - "temp-env", - "tempfile", - "test-log", - "thiserror", - "tokio-util", - "tracing", - "url", - "uv-cache", - "uv-client", - "uv-configuration", - "uv-extract", - "uv-fs", - "uv-state", - "uv-warnings", - "which", - "winapi", -] - [[package]] name = "uv-normalize" version = "0.0.1" @@ -4900,6 +4856,7 @@ dependencies = [ "install-wheel-rs", "itertools 0.13.0", "once-map", + "once_cell", "owo-colors", "pep440_rs", "pep508_rs", @@ -4925,8 +4882,8 @@ dependencies = [ "uv-configuration", "uv-distribution", "uv-git", - "uv-interpreter", "uv-normalize", + "uv-toolchain", "uv-types", "uv-warnings", ] @@ -4940,6 +4897,50 @@ dependencies = [ "tempfile", ] +[[package]] +name = "uv-toolchain" +version = "0.0.1" +dependencies = [ + "anyhow", + "assert_fs", + "cache-key", + "configparser", + "fs-err", + "futures", + "indoc", + "install-wheel-rs", + "itertools 0.13.0", + "once_cell", + "pep440_rs", + "pep508_rs", + "platform-tags", + "pypi-types", + "regex", + "reqwest", + "reqwest-middleware", + "rmp-serde", + "same-file", + "schemars", + "serde", + "serde_json", + "temp-env", + "tempfile", + "test-log", + "thiserror", + "tokio-util", + "tracing", + "url", + "uv-cache", + "uv-client", + "uv-configuration", + "uv-extract", + "uv-fs", + "uv-state", + "uv-warnings", + "which", + "winapi", +] + [[package]] name = "uv-types" version = "0.0.1" @@ -4956,8 +4957,8 @@ dependencies = [ "uv-cache", "uv-configuration", "uv-git", - "uv-interpreter", "uv-normalize", + "uv-toolchain", ] [[package]] @@ -4976,7 +4977,7 @@ dependencies = [ "thiserror", "tracing", "uv-fs", - "uv-interpreter", + "uv-toolchain", "uv-version", ] @@ -5007,9 +5008,9 @@ dependencies = [ "tracing", "uv-configuration", "uv-fs", - "uv-interpreter", "uv-normalize", "uv-resolver", + "uv-toolchain", "uv-warnings", ] diff --git a/Cargo.toml b/Cargo.toml index 40f2aed510f4..e65ccd6d6a72 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,7 @@ uv-extract = { path = "crates/uv-extract" } uv-fs = { path = "crates/uv-fs" } uv-git = { path = "crates/uv-git" } uv-installer = { path = "crates/uv-installer" } -uv-interpreter = { path = "crates/uv-interpreter" } +uv-toolchain = { path = "crates/uv-toolchain" } uv-normalize = { path = "crates/uv-normalize" } uv-requirements = { path = "crates/uv-requirements" } uv-resolver = { path = "crates/uv-resolver" } diff --git a/crates/README.md b/crates/README.md index 3c3969840699..4c128fe52c8f 100644 --- a/crates/README.md +++ b/crates/README.md @@ -89,7 +89,7 @@ Functionality for interacting with Git repositories. Functionality for installing Python packages into a virtual environment. -## [uv-interpreter](./uv-interpreter) +## [uv-toolchain](./uv-toolchain) Functionality for detecting and leveraging the current Python interpreter. diff --git a/crates/bench/Cargo.toml b/crates/bench/Cargo.toml index 5c863c42b9c7..36ba12a9176a 100644 --- a/crates/bench/Cargo.toml +++ b/crates/bench/Cargo.toml @@ -40,7 +40,7 @@ uv-configuration = { workspace = true } uv-dispatch = { workspace = true } uv-distribution = { workspace = true } uv-git = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-resolver = { workspace = true } uv-types = { workspace = true } diff --git a/crates/bench/benches/uv.rs b/crates/bench/benches/uv.rs index e53d8a8e1035..5c93a67785db 100644 --- a/crates/bench/benches/uv.rs +++ b/crates/bench/benches/uv.rs @@ -5,8 +5,8 @@ use bench::criterion::{criterion_group, criterion_main, measurement::WallTime, C use pypi_types::Requirement; use uv_cache::Cache; use uv_client::RegistryClientBuilder; -use uv_interpreter::PythonEnvironment; use uv_resolver::Manifest; +use uv_toolchain::PythonEnvironment; fn resolve_warm_jupyter(c: &mut Criterion) { let runtime = &tokio::runtime::Builder::new_current_thread() @@ -86,10 +86,10 @@ mod resolver { use uv_dispatch::BuildDispatch; use uv_distribution::DistributionDatabase; use uv_git::GitResolver; - use uv_interpreter::PythonEnvironment; use uv_resolver::{ FlatIndex, InMemoryIndex, Manifest, Options, PythonRequirement, ResolutionGraph, Resolver, }; + use uv_toolchain::PythonEnvironment; use uv_types::{BuildIsolation, EmptyInstalledPackages, HashStrategy, InFlight}; static MARKERS: Lazy = Lazy::new(|| { diff --git a/crates/uv-build/Cargo.toml b/crates/uv-build/Cargo.toml index b80ad792a76d..d394e8589228 100644 --- a/crates/uv-build/Cargo.toml +++ b/crates/uv-build/Cargo.toml @@ -19,7 +19,7 @@ pep440_rs = { workspace = true } pep508_rs = { workspace = true } pypi-types = { workspace = true } uv-fs = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-types = { workspace = true } uv-configuration = { workspace = true } uv-virtualenv = { workspace = true } diff --git a/crates/uv-build/src/lib.rs b/crates/uv-build/src/lib.rs index 604bc5c8eb17..9e206d95b659 100644 --- a/crates/uv-build/src/lib.rs +++ b/crates/uv-build/src/lib.rs @@ -31,7 +31,7 @@ use pep508_rs::PackageName; use pypi_types::{Requirement, VerbatimParsedUrl}; use uv_configuration::{BuildKind, ConfigSettings, SetupPyStrategy}; use uv_fs::{PythonExt, Simplified}; -use uv_interpreter::{Interpreter, PythonEnvironment}; +use uv_toolchain::{Interpreter, PythonEnvironment}; use uv_types::{BuildContext, BuildIsolation, SourceBuildTrait}; /// e.g. `pygraphviz/graphviz_wrap.c:3020:10: fatal error: graphviz/cgraph.h: No such file or directory` diff --git a/crates/uv-dev/Cargo.toml b/crates/uv-dev/Cargo.toml index 65ebb092fc30..dc4ab0099f99 100644 --- a/crates/uv-dev/Cargo.toml +++ b/crates/uv-dev/Cargo.toml @@ -30,7 +30,7 @@ uv-distribution = { workspace = true, features = ["schemars"] } uv-fs = { workspace = true } uv-git = { workspace = true } uv-installer = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-resolver = { workspace = true } uv-types = { workspace = true } uv-workspace = { workspace = true, features = ["schemars"] } diff --git a/crates/uv-dev/src/build.rs b/crates/uv-dev/src/build.rs index 73cdfe61ec72..a3d715574c92 100644 --- a/crates/uv-dev/src/build.rs +++ b/crates/uv-dev/src/build.rs @@ -15,8 +15,8 @@ use uv_configuration::{ }; use uv_dispatch::BuildDispatch; use uv_git::GitResolver; -use uv_interpreter::PythonEnvironment; use uv_resolver::{FlatIndex, InMemoryIndex}; +use uv_toolchain::PythonEnvironment; use uv_types::{BuildContext, BuildIsolation, InFlight}; #[derive(Parser)] diff --git a/crates/uv-dev/src/compile.rs b/crates/uv-dev/src/compile.rs index d996ba17b9b3..7c88e4e2179b 100644 --- a/crates/uv-dev/src/compile.rs +++ b/crates/uv-dev/src/compile.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use clap::Parser; use tracing::info; use uv_cache::{Cache, CacheArgs}; -use uv_interpreter::PythonEnvironment; +use uv_toolchain::PythonEnvironment; #[derive(Parser)] pub(crate) struct CompileArgs { diff --git a/crates/uv-dev/src/fetch_python.rs b/crates/uv-dev/src/fetch_python.rs index 22c64f7ee4f0..5abd52ab88dc 100644 --- a/crates/uv-dev/src/fetch_python.rs +++ b/crates/uv-dev/src/fetch_python.rs @@ -13,8 +13,8 @@ use tokio::time::Instant; use tracing::{info, info_span, Instrument}; use uv_fs::Simplified; -use uv_interpreter::downloads::{DownloadResult, Error, PythonDownload, PythonDownloadRequest}; -use uv_interpreter::managed::InstalledToolchains; +use uv_toolchain::downloads::{DownloadResult, Error, PythonDownload, PythonDownloadRequest}; +use uv_toolchain::managed::InstalledToolchains; #[derive(Parser, Debug)] pub(crate) struct FetchPythonArgs { diff --git a/crates/uv-dispatch/Cargo.toml b/crates/uv-dispatch/Cargo.toml index 222052409745..df4b61c8cc4a 100644 --- a/crates/uv-dispatch/Cargo.toml +++ b/crates/uv-dispatch/Cargo.toml @@ -24,7 +24,7 @@ uv-configuration = { workspace = true } uv-distribution = { workspace = true } uv-git = { workspace = true } uv-installer = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-resolver = { workspace = true } uv-types = { workspace = true } diff --git a/crates/uv-dispatch/src/lib.rs b/crates/uv-dispatch/src/lib.rs index 62ef53680374..84769b5200ef 100644 --- a/crates/uv-dispatch/src/lib.rs +++ b/crates/uv-dispatch/src/lib.rs @@ -21,8 +21,8 @@ use uv_configuration::{Concurrency, PreviewMode}; use uv_distribution::DistributionDatabase; use uv_git::GitResolver; use uv_installer::{Downloader, Installer, Plan, Planner, SitePackages}; -use uv_interpreter::{Interpreter, PythonEnvironment}; use uv_resolver::{FlatIndex, InMemoryIndex, Manifest, Options, PythonRequirement, Resolver}; +use uv_toolchain::{Interpreter, PythonEnvironment}; use uv_types::{BuildContext, BuildIsolation, EmptyInstalledPackages, HashStrategy, InFlight}; /// The main implementation of [`BuildContext`], used by the CLI, see [`BuildContext`] diff --git a/crates/uv-installer/Cargo.toml b/crates/uv-installer/Cargo.toml index d313323de1e6..0c36bbff67f2 100644 --- a/crates/uv-installer/Cargo.toml +++ b/crates/uv-installer/Cargo.toml @@ -27,7 +27,7 @@ uv-distribution = { workspace = true } uv-extract = { workspace = true } uv-fs = { workspace = true } uv-git = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-normalize = { workspace = true } uv-types = { workspace = true } uv-warnings = { workspace = true } diff --git a/crates/uv-installer/src/installer.rs b/crates/uv-installer/src/installer.rs index 87519a269f28..03f5cab0988c 100644 --- a/crates/uv-installer/src/installer.rs +++ b/crates/uv-installer/src/installer.rs @@ -3,7 +3,7 @@ use rayon::iter::{IntoParallelRefIterator, ParallelIterator}; use tracing::instrument; use distribution_types::CachedDist; -use uv_interpreter::PythonEnvironment; +use uv_toolchain::PythonEnvironment; pub struct Installer<'a> { venv: &'a PythonEnvironment, diff --git a/crates/uv-installer/src/plan.rs b/crates/uv-installer/src/plan.rs index 0c9ce7773470..6cc3d467c710 100644 --- a/crates/uv-installer/src/plan.rs +++ b/crates/uv-installer/src/plan.rs @@ -22,7 +22,7 @@ use uv_distribution::{ }; use uv_fs::Simplified; use uv_git::GitUrl; -use uv_interpreter::PythonEnvironment; +use uv_toolchain::PythonEnvironment; use uv_types::HashStrategy; use crate::satisfies::RequirementSatisfaction; diff --git a/crates/uv-installer/src/site_packages.rs b/crates/uv-installer/src/site_packages.rs index 47507a1e1f3c..c8757b35bc42 100644 --- a/crates/uv-installer/src/site_packages.rs +++ b/crates/uv-installer/src/site_packages.rs @@ -12,8 +12,8 @@ use distribution_types::{ }; use pep440_rs::{Version, VersionSpecifiers}; use pypi_types::{Requirement, VerbatimParsedUrl}; -use uv_interpreter::PythonEnvironment; use uv_normalize::PackageName; +use uv_toolchain::PythonEnvironment; use uv_types::InstalledPackagesProvider; use crate::satisfies::RequirementSatisfaction; diff --git a/crates/uv-resolver/Cargo.toml b/crates/uv-resolver/Cargo.toml index cb6afe753f48..fa9ab3ef424c 100644 --- a/crates/uv-resolver/Cargo.toml +++ b/crates/uv-resolver/Cargo.toml @@ -27,7 +27,7 @@ uv-client = { workspace = true } uv-configuration = { workspace = true } uv-distribution = { workspace = true } uv-git = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-normalize = { workspace = true } uv-types = { workspace = true } uv-warnings = { workspace = true } @@ -58,5 +58,6 @@ tracing = { workspace = true } url = { workspace = true } [dev-dependencies] +once_cell = { version = "1.19.0" } insta = { version = "1.36.1" } toml = { workspace = true } diff --git a/crates/uv-resolver/src/python_requirement.rs b/crates/uv-resolver/src/python_requirement.rs index 13554e0a3503..a2f58efa4216 100644 --- a/crates/uv-resolver/src/python_requirement.rs +++ b/crates/uv-resolver/src/python_requirement.rs @@ -1,6 +1,6 @@ use pep440_rs::VersionSpecifiers; use pep508_rs::StringVersion; -use uv_interpreter::{Interpreter, PythonVersion}; +use uv_toolchain::{Interpreter, PythonVersion}; use crate::RequiresPython; diff --git a/crates/uv-interpreter/Cargo.toml b/crates/uv-toolchain/Cargo.toml similarity index 98% rename from crates/uv-interpreter/Cargo.toml rename to crates/uv-toolchain/Cargo.toml index 11ddc197134b..c64bab677893 100644 --- a/crates/uv-interpreter/Cargo.toml +++ b/crates/uv-toolchain/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "uv-interpreter" +name = "uv-toolchain" version = "0.0.1" edition = { workspace = true } rust-version = { workspace = true } diff --git a/crates/uv-interpreter/download-metadata.json b/crates/uv-toolchain/download-metadata.json similarity index 100% rename from crates/uv-interpreter/download-metadata.json rename to crates/uv-toolchain/download-metadata.json diff --git a/crates/uv-interpreter/fetch-download-metadata.py b/crates/uv-toolchain/fetch-download-metadata.py similarity index 100% rename from crates/uv-interpreter/fetch-download-metadata.py rename to crates/uv-toolchain/fetch-download-metadata.py diff --git a/crates/uv-interpreter/python/__init__.py b/crates/uv-toolchain/python/__init__.py similarity index 100% rename from crates/uv-interpreter/python/__init__.py rename to crates/uv-toolchain/python/__init__.py diff --git a/crates/uv-interpreter/python/get_interpreter_info.py b/crates/uv-toolchain/python/get_interpreter_info.py similarity index 100% rename from crates/uv-interpreter/python/get_interpreter_info.py rename to crates/uv-toolchain/python/get_interpreter_info.py diff --git a/crates/uv-interpreter/python/packaging/LICENSE.APACHE b/crates/uv-toolchain/python/packaging/LICENSE.APACHE similarity index 100% rename from crates/uv-interpreter/python/packaging/LICENSE.APACHE rename to crates/uv-toolchain/python/packaging/LICENSE.APACHE diff --git a/crates/uv-interpreter/python/packaging/LICENSE.BSD b/crates/uv-toolchain/python/packaging/LICENSE.BSD similarity index 100% rename from crates/uv-interpreter/python/packaging/LICENSE.BSD rename to crates/uv-toolchain/python/packaging/LICENSE.BSD diff --git a/crates/uv-interpreter/python/packaging/README.md b/crates/uv-toolchain/python/packaging/README.md similarity index 100% rename from crates/uv-interpreter/python/packaging/README.md rename to crates/uv-toolchain/python/packaging/README.md diff --git a/crates/uv-interpreter/python/packaging/__init__.py b/crates/uv-toolchain/python/packaging/__init__.py similarity index 100% rename from crates/uv-interpreter/python/packaging/__init__.py rename to crates/uv-toolchain/python/packaging/__init__.py diff --git a/crates/uv-interpreter/python/packaging/_elffile.py b/crates/uv-toolchain/python/packaging/_elffile.py similarity index 100% rename from crates/uv-interpreter/python/packaging/_elffile.py rename to crates/uv-toolchain/python/packaging/_elffile.py diff --git a/crates/uv-interpreter/python/packaging/_manylinux.py b/crates/uv-toolchain/python/packaging/_manylinux.py similarity index 100% rename from crates/uv-interpreter/python/packaging/_manylinux.py rename to crates/uv-toolchain/python/packaging/_manylinux.py diff --git a/crates/uv-interpreter/python/packaging/_musllinux.py b/crates/uv-toolchain/python/packaging/_musllinux.py similarity index 100% rename from crates/uv-interpreter/python/packaging/_musllinux.py rename to crates/uv-toolchain/python/packaging/_musllinux.py diff --git a/crates/uv-interpreter/src/discovery.rs b/crates/uv-toolchain/src/discovery.rs similarity index 100% rename from crates/uv-interpreter/src/discovery.rs rename to crates/uv-toolchain/src/discovery.rs diff --git a/crates/uv-interpreter/src/downloads.inc b/crates/uv-toolchain/src/downloads.inc similarity index 100% rename from crates/uv-interpreter/src/downloads.inc rename to crates/uv-toolchain/src/downloads.inc diff --git a/crates/uv-interpreter/src/downloads.inc.mustache b/crates/uv-toolchain/src/downloads.inc.mustache similarity index 100% rename from crates/uv-interpreter/src/downloads.inc.mustache rename to crates/uv-toolchain/src/downloads.inc.mustache diff --git a/crates/uv-interpreter/src/downloads.rs b/crates/uv-toolchain/src/downloads.rs similarity index 100% rename from crates/uv-interpreter/src/downloads.rs rename to crates/uv-toolchain/src/downloads.rs diff --git a/crates/uv-interpreter/src/environment.rs b/crates/uv-toolchain/src/environment.rs similarity index 100% rename from crates/uv-interpreter/src/environment.rs rename to crates/uv-toolchain/src/environment.rs diff --git a/crates/uv-interpreter/src/implementation.rs b/crates/uv-toolchain/src/implementation.rs similarity index 100% rename from crates/uv-interpreter/src/implementation.rs rename to crates/uv-toolchain/src/implementation.rs diff --git a/crates/uv-interpreter/src/interpreter.rs b/crates/uv-toolchain/src/interpreter.rs similarity index 100% rename from crates/uv-interpreter/src/interpreter.rs rename to crates/uv-toolchain/src/interpreter.rs diff --git a/crates/uv-interpreter/src/lib.rs b/crates/uv-toolchain/src/lib.rs similarity index 100% rename from crates/uv-interpreter/src/lib.rs rename to crates/uv-toolchain/src/lib.rs diff --git a/crates/uv-interpreter/src/managed.rs b/crates/uv-toolchain/src/managed.rs similarity index 100% rename from crates/uv-interpreter/src/managed.rs rename to crates/uv-toolchain/src/managed.rs diff --git a/crates/uv-interpreter/src/platform.rs b/crates/uv-toolchain/src/platform.rs similarity index 100% rename from crates/uv-interpreter/src/platform.rs rename to crates/uv-toolchain/src/platform.rs diff --git a/crates/uv-interpreter/src/pointer_size.rs b/crates/uv-toolchain/src/pointer_size.rs similarity index 100% rename from crates/uv-interpreter/src/pointer_size.rs rename to crates/uv-toolchain/src/pointer_size.rs diff --git a/crates/uv-interpreter/src/prefix.rs b/crates/uv-toolchain/src/prefix.rs similarity index 100% rename from crates/uv-interpreter/src/prefix.rs rename to crates/uv-toolchain/src/prefix.rs diff --git a/crates/uv-interpreter/src/py_launcher.rs b/crates/uv-toolchain/src/py_launcher.rs similarity index 100% rename from crates/uv-interpreter/src/py_launcher.rs rename to crates/uv-toolchain/src/py_launcher.rs diff --git a/crates/uv-interpreter/src/python_version.rs b/crates/uv-toolchain/src/python_version.rs similarity index 100% rename from crates/uv-interpreter/src/python_version.rs rename to crates/uv-toolchain/src/python_version.rs diff --git a/crates/uv-interpreter/src/target.rs b/crates/uv-toolchain/src/target.rs similarity index 100% rename from crates/uv-interpreter/src/target.rs rename to crates/uv-toolchain/src/target.rs diff --git a/crates/uv-interpreter/src/virtualenv.rs b/crates/uv-toolchain/src/virtualenv.rs similarity index 100% rename from crates/uv-interpreter/src/virtualenv.rs rename to crates/uv-toolchain/src/virtualenv.rs diff --git a/crates/uv-interpreter/template-download-metadata.py b/crates/uv-toolchain/template-download-metadata.py similarity index 100% rename from crates/uv-interpreter/template-download-metadata.py rename to crates/uv-toolchain/template-download-metadata.py diff --git a/crates/uv-types/Cargo.toml b/crates/uv-types/Cargo.toml index 7ab1ffcc73e6..06d2bf4a09dd 100644 --- a/crates/uv-types/Cargo.toml +++ b/crates/uv-types/Cargo.toml @@ -21,7 +21,7 @@ pypi-types = { workspace = true } uv-cache = { workspace = true } uv-configuration = { workspace = true } uv-git = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-normalize = { workspace = true } anyhow = { workspace = true } diff --git a/crates/uv-types/src/builds.rs b/crates/uv-types/src/builds.rs index cf70e737fa1c..c3b1261cff9f 100644 --- a/crates/uv-types/src/builds.rs +++ b/crates/uv-types/src/builds.rs @@ -1,4 +1,4 @@ -use uv_interpreter::PythonEnvironment; +use uv_toolchain::PythonEnvironment; /// Whether to enforce build isolation when building source distributions. #[derive(Debug, Default, Copy, Clone)] diff --git a/crates/uv-types/src/traits.rs b/crates/uv-types/src/traits.rs index a525c2e43afd..ccb6c184bfff 100644 --- a/crates/uv-types/src/traits.rs +++ b/crates/uv-types/src/traits.rs @@ -9,7 +9,7 @@ use pypi_types::Requirement; use uv_cache::Cache; use uv_configuration::{BuildKind, NoBinary, NoBuild, SetupPyStrategy}; use uv_git::GitResolver; -use uv_interpreter::{Interpreter, PythonEnvironment}; +use uv_toolchain::{Interpreter, PythonEnvironment}; use crate::BuildIsolation; diff --git a/crates/uv-virtualenv/Cargo.toml b/crates/uv-virtualenv/Cargo.toml index 515afd97b82c..0724d045d0d9 100644 --- a/crates/uv-virtualenv/Cargo.toml +++ b/crates/uv-virtualenv/Cargo.toml @@ -20,7 +20,7 @@ workspace = true platform-tags = { workspace = true } pypi-types = { workspace = true } uv-fs = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-version = { workspace = true } fs-err = { workspace = true } diff --git a/crates/uv-virtualenv/src/bare.rs b/crates/uv-virtualenv/src/bare.rs index 4172f3707c5e..56d0103a57b5 100644 --- a/crates/uv-virtualenv/src/bare.rs +++ b/crates/uv-virtualenv/src/bare.rs @@ -13,7 +13,7 @@ use tracing::info; use pypi_types::Scheme; use uv_fs::{cachedir, Simplified}; -use uv_interpreter::{Interpreter, VirtualEnvironment}; +use uv_toolchain::{Interpreter, VirtualEnvironment}; use uv_version::version; use crate::{Error, Prompt}; diff --git a/crates/uv-virtualenv/src/lib.rs b/crates/uv-virtualenv/src/lib.rs index 4be9ea90a19f..f9be322e13ce 100644 --- a/crates/uv-virtualenv/src/lib.rs +++ b/crates/uv-virtualenv/src/lib.rs @@ -4,7 +4,7 @@ use std::path::Path; use thiserror::Error; use platform_tags::PlatformError; -use uv_interpreter::{Interpreter, PythonEnvironment}; +use uv_toolchain::{Interpreter, PythonEnvironment}; pub use crate::bare::create_bare_venv; @@ -15,9 +15,9 @@ pub enum Error { #[error(transparent)] IO(#[from] io::Error), #[error("Failed to determine Python interpreter to use")] - Discovery(#[from] uv_interpreter::DiscoveryError), + Discovery(#[from] uv_toolchain::DiscoveryError), #[error("Failed to determine Python interpreter to use")] - InterpreterNotFound(#[from] uv_interpreter::InterpreterNotFound), + InterpreterNotFound(#[from] uv_toolchain::InterpreterNotFound), #[error(transparent)] Platform(#[from] PlatformError), #[error("Could not find a suitable Python executable for the virtual environment based on the interpreter: {0}")] diff --git a/crates/uv-workspace/Cargo.toml b/crates/uv-workspace/Cargo.toml index 83fbe965d9ce..cd579e888c31 100644 --- a/crates/uv-workspace/Cargo.toml +++ b/crates/uv-workspace/Cargo.toml @@ -21,7 +21,7 @@ uv-configuration = { workspace = true, features = ["schemars"] } uv-fs = { workspace = true } uv-normalize = { workspace = true, features = ["schemars"] } uv-resolver = { workspace = true, features = ["schemars"] } -uv-interpreter = { workspace = true, features = ["schemars"] } +uv-toolchain = { workspace = true, features = ["schemars"] } uv-warnings = { workspace = true } dirs-sys = { workspace = true } diff --git a/crates/uv-workspace/src/combine.rs b/crates/uv-workspace/src/combine.rs index 3c357f2731d0..82a68e24eba9 100644 --- a/crates/uv-workspace/src/combine.rs +++ b/crates/uv-workspace/src/combine.rs @@ -4,8 +4,8 @@ use std::path::PathBuf; use distribution_types::IndexUrl; use install_wheel_rs::linker::LinkMode; use uv_configuration::{ConfigSettings, IndexStrategy, KeyringProviderType, TargetTriple}; -use uv_interpreter::PythonVersion; use uv_resolver::{AnnotationStyle, ExcludeNewer, PreReleaseMode, ResolutionMode}; +use uv_toolchain::PythonVersion; use crate::{Options, PipOptions, Workspace}; diff --git a/crates/uv-workspace/src/settings.rs b/crates/uv-workspace/src/settings.rs index 9316efc18b14..13d6839d23f8 100644 --- a/crates/uv-workspace/src/settings.rs +++ b/crates/uv-workspace/src/settings.rs @@ -8,9 +8,9 @@ use pypi_types::VerbatimParsedUrl; use uv_configuration::{ ConfigSettings, IndexStrategy, KeyringProviderType, PackageNameSpecifier, TargetTriple, }; -use uv_interpreter::PythonVersion; use uv_normalize::{ExtraName, PackageName}; use uv_resolver::{AnnotationStyle, ExcludeNewer, PreReleaseMode, ResolutionMode}; +use uv_toolchain::PythonVersion; /// A `pyproject.toml` with an (optional) `[tool.uv]` section. #[allow(dead_code)] diff --git a/crates/uv/Cargo.toml b/crates/uv/Cargo.toml index 9c34a5a65027..1c0c43943368 100644 --- a/crates/uv/Cargo.toml +++ b/crates/uv/Cargo.toml @@ -29,7 +29,7 @@ uv-distribution = { workspace = true } uv-fs = { workspace = true } uv-git = { workspace = true } uv-installer = { workspace = true } -uv-interpreter = { workspace = true } +uv-toolchain = { workspace = true } uv-normalize = { workspace = true } uv-requirements = { workspace = true } uv-resolver = { workspace = true, features = ["clap"] } diff --git a/crates/uv/src/cli.rs b/crates/uv/src/cli.rs index 14c5b5ddb15d..d30c4ef4a058 100644 --- a/crates/uv/src/cli.rs +++ b/crates/uv/src/cli.rs @@ -11,9 +11,9 @@ use uv_cache::CacheArgs; use uv_configuration::{ ConfigSettingEntry, IndexStrategy, KeyringProviderType, PackageNameSpecifier, TargetTriple, }; -use uv_interpreter::PythonVersion; use uv_normalize::{ExtraName, PackageName}; use uv_resolver::{AnnotationStyle, ExcludeNewer, PreReleaseMode, ResolutionMode}; +use uv_toolchain::PythonVersion; use crate::commands::{extra_name_with_clap_error, ListFormat, VersionFormat}; use crate::compat; diff --git a/crates/uv/src/commands/mod.rs b/crates/uv/src/commands/mod.rs index 96359b15c97b..d042e88ced44 100644 --- a/crates/uv/src/commands/mod.rs +++ b/crates/uv/src/commands/mod.rs @@ -25,8 +25,8 @@ pub(crate) use tool::run::run as run_tool; use uv_cache::Cache; use uv_fs::Simplified; use uv_installer::compile_tree; -use uv_interpreter::PythonEnvironment; use uv_normalize::PackageName; +use uv_toolchain::PythonEnvironment; pub(crate) use venv::venv; pub(crate) use version::version; diff --git a/crates/uv/src/commands/pip/check.rs b/crates/uv/src/commands/pip/check.rs index 237c0d42a53c..36e1f791330c 100644 --- a/crates/uv/src/commands/pip/check.rs +++ b/crates/uv/src/commands/pip/check.rs @@ -10,7 +10,7 @@ use uv_cache::Cache; use uv_configuration::PreviewMode; use uv_fs::Simplified; use uv_installer::{SitePackages, SitePackagesDiagnostic}; -use uv_interpreter::{PythonEnvironment, SystemPython}; +use uv_toolchain::{PythonEnvironment, SystemPython}; use crate::commands::{elapsed, ExitStatus}; use crate::printer::Printer; diff --git a/crates/uv/src/commands/pip/compile.rs b/crates/uv/src/commands/pip/compile.rs index 7a6efcd5f23e..c1d48c630ede 100644 --- a/crates/uv/src/commands/pip/compile.rs +++ b/crates/uv/src/commands/pip/compile.rs @@ -31,10 +31,6 @@ use uv_dispatch::BuildDispatch; use uv_distribution::DistributionDatabase; use uv_fs::Simplified; use uv_git::GitResolver; -use uv_interpreter::PythonVersion; -use uv_interpreter::{ - find_best_interpreter, InterpreterRequest, PythonEnvironment, SystemPython, VersionRequest, -}; use uv_normalize::{ExtraName, PackageName}; use uv_requirements::{ upgrade::read_requirements_txt, LookaheadResolver, NamedRequirementsResolver, @@ -45,6 +41,10 @@ use uv_resolver::{ InMemoryIndex, Manifest, OptionsBuilder, PreReleaseMode, PythonRequirement, ResolutionMode, Resolver, }; +use uv_toolchain::{ + find_best_interpreter, InterpreterRequest, PythonEnvironment, PythonVersion, SystemPython, + VersionRequest, +}; use uv_types::{BuildIsolation, EmptyInstalledPackages, HashStrategy, InFlight}; use uv_warnings::warn_user; diff --git a/crates/uv/src/commands/pip/freeze.rs b/crates/uv/src/commands/pip/freeze.rs index 9e64b7cd2a6a..7cbde4be1fc4 100644 --- a/crates/uv/src/commands/pip/freeze.rs +++ b/crates/uv/src/commands/pip/freeze.rs @@ -10,7 +10,7 @@ use uv_cache::Cache; use uv_configuration::PreviewMode; use uv_fs::Simplified; use uv_installer::SitePackages; -use uv_interpreter::{PythonEnvironment, SystemPython}; +use uv_toolchain::{PythonEnvironment, SystemPython}; use crate::commands::ExitStatus; use crate::printer::Printer; diff --git a/crates/uv/src/commands/pip/install.rs b/crates/uv/src/commands/pip/install.rs index fbdf67f67795..ca4d01562cee 100644 --- a/crates/uv/src/commands/pip/install.rs +++ b/crates/uv/src/commands/pip/install.rs @@ -22,12 +22,12 @@ use uv_dispatch::BuildDispatch; use uv_fs::Simplified; use uv_git::GitResolver; use uv_installer::{SatisfiesResult, SitePackages}; -use uv_interpreter::{Prefix, PythonEnvironment, PythonVersion, SystemPython, Target}; use uv_requirements::{RequirementsSource, RequirementsSpecification}; use uv_resolver::{ DependencyMode, ExcludeNewer, FlatIndex, InMemoryIndex, OptionsBuilder, PreReleaseMode, ResolutionMode, }; +use uv_toolchain::{Prefix, PythonEnvironment, PythonVersion, SystemPython, Target}; use uv_types::{BuildIsolation, HashStrategy, InFlight}; use crate::commands::pip::operations; diff --git a/crates/uv/src/commands/pip/list.rs b/crates/uv/src/commands/pip/list.rs index 2a4db8f78917..6e91ed29a962 100644 --- a/crates/uv/src/commands/pip/list.rs +++ b/crates/uv/src/commands/pip/list.rs @@ -13,8 +13,8 @@ use uv_cache::Cache; use uv_configuration::PreviewMode; use uv_fs::Simplified; use uv_installer::SitePackages; -use uv_interpreter::{PythonEnvironment, SystemPython}; use uv_normalize::PackageName; +use uv_toolchain::{PythonEnvironment, SystemPython}; use crate::commands::ExitStatus; use crate::commands::ListFormat; diff --git a/crates/uv/src/commands/pip/operations.rs b/crates/uv/src/commands/pip/operations.rs index b55665b42460..cebc5949d186 100644 --- a/crates/uv/src/commands/pip/operations.rs +++ b/crates/uv/src/commands/pip/operations.rs @@ -28,7 +28,6 @@ use uv_dispatch::BuildDispatch; use uv_distribution::DistributionDatabase; use uv_fs::Simplified; use uv_installer::{Downloader, Plan, Planner, SitePackages}; -use uv_interpreter::{Interpreter, PythonEnvironment}; use uv_normalize::{GroupName, PackageName}; use uv_requirements::{ LookaheadResolver, NamedRequirementsResolver, RequirementsSource, RequirementsSpecification, @@ -38,6 +37,7 @@ use uv_resolver::{ DependencyMode, Exclusions, FlatIndex, InMemoryIndex, Manifest, Options, Preference, PythonRequirement, RequiresPython, ResolutionGraph, Resolver, }; +use uv_toolchain::{Interpreter, PythonEnvironment}; use uv_types::{HashStrategy, InFlight, InstalledPackagesProvider}; use uv_warnings::warn_user; diff --git a/crates/uv/src/commands/pip/show.rs b/crates/uv/src/commands/pip/show.rs index 014e5b72965d..55f32770e8d0 100644 --- a/crates/uv/src/commands/pip/show.rs +++ b/crates/uv/src/commands/pip/show.rs @@ -11,8 +11,8 @@ use uv_cache::Cache; use uv_configuration::PreviewMode; use uv_fs::Simplified; use uv_installer::SitePackages; -use uv_interpreter::{PythonEnvironment, SystemPython}; use uv_normalize::PackageName; +use uv_toolchain::{PythonEnvironment, SystemPython}; use crate::commands::ExitStatus; use crate::printer::Printer; diff --git a/crates/uv/src/commands/pip/sync.rs b/crates/uv/src/commands/pip/sync.rs index 2375cb1856f3..7a69da0c70d4 100644 --- a/crates/uv/src/commands/pip/sync.rs +++ b/crates/uv/src/commands/pip/sync.rs @@ -21,12 +21,12 @@ use uv_dispatch::BuildDispatch; use uv_fs::Simplified; use uv_git::GitResolver; use uv_installer::SitePackages; -use uv_interpreter::{Prefix, PythonEnvironment, PythonVersion, SystemPython, Target}; use uv_requirements::{RequirementsSource, RequirementsSpecification}; use uv_resolver::{ DependencyMode, ExcludeNewer, FlatIndex, InMemoryIndex, OptionsBuilder, PreReleaseMode, ResolutionMode, }; +use uv_toolchain::{Prefix, PythonEnvironment, PythonVersion, SystemPython, Target}; use uv_types::{BuildIsolation, HashStrategy, InFlight}; use crate::commands::pip::operations; diff --git a/crates/uv/src/commands/pip/uninstall.rs b/crates/uv/src/commands/pip/uninstall.rs index 398f6547d451..7ab38cc16f52 100644 --- a/crates/uv/src/commands/pip/uninstall.rs +++ b/crates/uv/src/commands/pip/uninstall.rs @@ -13,8 +13,8 @@ use uv_cache::Cache; use uv_client::{BaseClientBuilder, Connectivity}; use uv_configuration::{KeyringProviderType, PreviewMode}; use uv_fs::Simplified; -use uv_interpreter::{Prefix, PythonEnvironment, SystemPython, Target}; use uv_requirements::{RequirementsSource, RequirementsSpecification}; +use uv_toolchain::{Prefix, PythonEnvironment, SystemPython, Target}; use crate::commands::{elapsed, ExitStatus}; use crate::printer::Printer; diff --git a/crates/uv/src/commands/project/lock.rs b/crates/uv/src/commands/project/lock.rs index 2ea12b58bddc..0aa9341f84c7 100644 --- a/crates/uv/src/commands/project/lock.rs +++ b/crates/uv/src/commands/project/lock.rs @@ -11,10 +11,10 @@ use uv_configuration::{ use uv_dispatch::BuildDispatch; use uv_distribution::{Workspace, DEV_DEPENDENCIES}; use uv_git::GitResolver; -use uv_interpreter::PythonEnvironment; use uv_normalize::PackageName; use uv_requirements::upgrade::{read_lockfile, LockedRequirements}; use uv_resolver::{ExcludeNewer, FlatIndex, InMemoryIndex, Lock, OptionsBuilder, RequiresPython}; +use uv_toolchain::PythonEnvironment; use uv_types::{BuildIsolation, EmptyInstalledPackages, HashStrategy, InFlight}; use uv_warnings::warn_user; diff --git a/crates/uv/src/commands/project/mod.rs b/crates/uv/src/commands/project/mod.rs index cef7f137851f..6b3cd6f81c1c 100644 --- a/crates/uv/src/commands/project/mod.rs +++ b/crates/uv/src/commands/project/mod.rs @@ -19,9 +19,9 @@ use uv_distribution::Workspace; use uv_fs::Simplified; use uv_git::GitResolver; use uv_installer::{SatisfiesResult, SitePackages}; -use uv_interpreter::{find_default_interpreter, PythonEnvironment}; use uv_requirements::{RequirementsSource, RequirementsSpecification}; use uv_resolver::{FlatIndex, InMemoryIndex, Options, RequiresPython}; +use uv_toolchain::{find_default_interpreter, PythonEnvironment}; use uv_types::{BuildIsolation, HashStrategy, InFlight}; use crate::commands::pip; @@ -37,7 +37,7 @@ pub(crate) enum ProjectError { PythonIncompatibility(Version, RequiresPython), #[error(transparent)] - Interpreter(#[from] uv_interpreter::Error), + Interpreter(#[from] uv_toolchain::Error), #[error(transparent)] Virtualenv(#[from] uv_virtualenv::Error), @@ -80,11 +80,11 @@ pub(crate) fn init_environment( // TODO(charlie): If the environment isn't compatible with `--python`, recreate it. match PythonEnvironment::from_root(&venv, cache) { Ok(venv) => Ok(venv), - Err(uv_interpreter::Error::NotFound(_)) => { + Err(uv_toolchain::Error::NotFound(_)) => { // TODO(charlie): Respect `--python`; if unset, respect `Requires-Python`. let interpreter = find_default_interpreter(preview, cache) - .map_err(uv_interpreter::Error::from)? - .map_err(uv_interpreter::Error::from)? + .map_err(uv_toolchain::Error::from)? + .map_err(uv_toolchain::Error::from)? .into_interpreter(); writeln!( diff --git a/crates/uv/src/commands/project/run.rs b/crates/uv/src/commands/project/run.rs index 67a9e5376fef..709297dbbe91 100644 --- a/crates/uv/src/commands/project/run.rs +++ b/crates/uv/src/commands/project/run.rs @@ -12,10 +12,10 @@ use uv_cache::Cache; use uv_client::Connectivity; use uv_configuration::{ExtrasSpecification, PreviewMode, Upgrade}; use uv_distribution::{ProjectWorkspace, Workspace}; -use uv_interpreter::{PythonEnvironment, SystemPython}; use uv_normalize::PackageName; use uv_requirements::RequirementsSource; use uv_resolver::ExcludeNewer; +use uv_toolchain::{PythonEnvironment, SystemPython}; use uv_warnings::warn_user; use crate::commands::{project, ExitStatus}; diff --git a/crates/uv/src/commands/project/sync.rs b/crates/uv/src/commands/project/sync.rs index 5b9ccff7f565..d81408465733 100644 --- a/crates/uv/src/commands/project/sync.rs +++ b/crates/uv/src/commands/project/sync.rs @@ -12,8 +12,8 @@ use uv_dispatch::BuildDispatch; use uv_distribution::{ProjectWorkspace, DEV_DEPENDENCIES}; use uv_git::GitResolver; use uv_installer::SitePackages; -use uv_interpreter::PythonEnvironment; use uv_resolver::{FlatIndex, InMemoryIndex, Lock}; +use uv_toolchain::PythonEnvironment; use uv_types::{BuildIsolation, HashStrategy, InFlight}; use uv_warnings::warn_user; diff --git a/crates/uv/src/commands/tool/run.rs b/crates/uv/src/commands/tool/run.rs index 735a637c2c51..a2b7945de0a2 100644 --- a/crates/uv/src/commands/tool/run.rs +++ b/crates/uv/src/commands/tool/run.rs @@ -11,8 +11,8 @@ use tracing::debug; use uv_cache::Cache; use uv_client::Connectivity; use uv_configuration::PreviewMode; -use uv_interpreter::{PythonEnvironment, SystemPython}; use uv_requirements::RequirementsSource; +use uv_toolchain::{PythonEnvironment, SystemPython}; use uv_warnings::warn_user; use crate::commands::project::update_environment; diff --git a/crates/uv/src/commands/venv.rs b/crates/uv/src/commands/venv.rs index a820e8fd56ae..010e05a2a5ff 100644 --- a/crates/uv/src/commands/venv.rs +++ b/crates/uv/src/commands/venv.rs @@ -20,8 +20,8 @@ use uv_configuration::{ConfigSettings, IndexStrategy, NoBinary, NoBuild, SetupPy use uv_dispatch::BuildDispatch; use uv_fs::Simplified; use uv_git::GitResolver; -use uv_interpreter::{PythonEnvironment, SystemPython}; use uv_resolver::{ExcludeNewer, FlatIndex, InMemoryIndex, OptionsBuilder}; +use uv_toolchain::{PythonEnvironment, SystemPython}; use uv_types::{BuildContext, BuildIsolation, HashStrategy, InFlight}; use crate::commands::{pip, ExitStatus}; diff --git a/crates/uv/src/settings.rs b/crates/uv/src/settings.rs index 3fdeb37e64e2..bb109b41559e 100644 --- a/crates/uv/src/settings.rs +++ b/crates/uv/src/settings.rs @@ -15,9 +15,9 @@ use uv_configuration::{ Concurrency, ConfigSettings, ExtrasSpecification, IndexStrategy, KeyringProviderType, NoBinary, NoBuild, PreviewMode, Reinstall, SetupPyStrategy, TargetTriple, Upgrade, }; -use uv_interpreter::{Prefix, PythonVersion, Target}; use uv_normalize::PackageName; use uv_resolver::{AnnotationStyle, DependencyMode, ExcludeNewer, PreReleaseMode, ResolutionMode}; +use uv_toolchain::{Prefix, PythonVersion, Target}; use uv_workspace::{Combine, PipOptions, Workspace}; use crate::cli::{ diff --git a/crates/uv/tests/common/mod.rs b/crates/uv/tests/common/mod.rs index 04e6977beaf7..9b131777dde0 100644 --- a/crates/uv/tests/common/mod.rs +++ b/crates/uv/tests/common/mod.rs @@ -17,8 +17,8 @@ use uv_configuration::PreviewMode; use uv_cache::Cache; use uv_fs::Simplified; -use uv_interpreter::managed::InstalledToolchains; -use uv_interpreter::{ +use uv_toolchain::managed::InstalledToolchains; +use uv_toolchain::{ find_interpreter, InterpreterRequest, PythonVersion, SourceSelector, VersionRequest, }; @@ -416,7 +416,7 @@ pub fn create_venv