diff --git a/Cargo.lock b/Cargo.lock index fe729749a..8000769a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4927,11 +4927,11 @@ dependencies = [ "uv-cache", "uv-cache-info", "uv-cache-key", + "uv-distribution-types", "uv-normalize", "uv-pep440", "uv-pep508", "uv-platform-tags", - "uv-pypi-types", "uv-static", "which", ] @@ -5112,6 +5112,7 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.12", + "toml", "tracing", "url", "uv-auth", @@ -5467,12 +5468,10 @@ dependencies = [ "serde", "serde-untagged", "thiserror 2.0.12", - "toml", "toml_edit", "tracing", "url", "uv-distribution-filename", - "uv-fs", "uv-git-types", "uv-normalize", "uv-pep440", @@ -5763,6 +5762,7 @@ dependencies = [ "tracing", "uv-cache", "uv-dirs", + "uv-distribution-types", "uv-fs", "uv-install-wheel", "uv-installer", diff --git a/crates/uv-bench/benches/uv.rs b/crates/uv-bench/benches/uv.rs index 6e546c0ba..4f817a275 100644 --- a/crates/uv-bench/benches/uv.rs +++ b/crates/uv-bench/benches/uv.rs @@ -4,7 +4,7 @@ use uv_bench::criterion::black_box; use uv_bench::criterion::{criterion_group, criterion_main, measurement::WallTime, Criterion}; use uv_cache::Cache; use uv_client::RegistryClientBuilder; -use uv_pypi_types::Requirement; +use uv_distribution_types::Requirement; use uv_python::PythonEnvironment; use uv_resolver::Manifest; diff --git a/crates/uv-build-frontend/src/lib.rs b/crates/uv-build-frontend/src/lib.rs index 1ea3bc587..af3491217 100644 --- a/crates/uv-build-frontend/src/lib.rs +++ b/crates/uv-build-frontend/src/lib.rs @@ -29,11 +29,11 @@ use tracing::{debug, info_span, instrument, Instrument}; use uv_configuration::{BuildKind, BuildOutput, ConfigSettings, SourceStrategy}; use uv_distribution::BuildRequires; -use uv_distribution_types::{IndexLocations, Resolution}; +use uv_distribution_types::{IndexLocations, Requirement, Resolution}; use uv_fs::{PythonExt, Simplified}; use uv_pep440::Version; use uv_pep508::PackageName; -use uv_pypi_types::{Requirement, VerbatimParsedUrl}; +use uv_pypi_types::VerbatimParsedUrl; use uv_python::{Interpreter, PythonEnvironment}; use uv_static::EnvVars; use uv_types::{AnyErrorBuild, BuildContext, BuildIsolation, BuildStack, SourceBuildTrait}; diff --git a/crates/uv-configuration/Cargo.toml b/crates/uv-configuration/Cargo.toml index 493698ba5..c27ad4276 100644 --- a/crates/uv-configuration/Cargo.toml +++ b/crates/uv-configuration/Cargo.toml @@ -20,11 +20,11 @@ uv-auth = { workspace = true } uv-cache = { workspace = true } uv-cache-info = { workspace = true } uv-cache-key = { workspace = true } +uv-distribution-types = { workspace = true } uv-normalize = { workspace = true } uv-pep440 = { workspace = true } uv-pep508 = { workspace = true, features = ["schemars"] } uv-platform-tags = { workspace = true } -uv-pypi-types = { workspace = true } uv-static = { workspace = true } clap = { workspace = true, features = ["derive"], optional = true } diff --git a/crates/uv-configuration/src/constraints.rs b/crates/uv-configuration/src/constraints.rs index e1f14ef44..cbbe2bdfa 100644 --- a/crates/uv-configuration/src/constraints.rs +++ b/crates/uv-configuration/src/constraints.rs @@ -3,9 +3,9 @@ use std::borrow::Cow; use either::Either; use rustc_hash::FxHashMap; +use uv_distribution_types::{Requirement, RequirementSource}; use uv_normalize::PackageName; use uv_pep508::MarkerTree; -use uv_pypi_types::{Requirement, RequirementSource}; /// A set of constraints for a set of requirements. #[derive(Debug, Default, Clone)] diff --git a/crates/uv-configuration/src/overrides.rs b/crates/uv-configuration/src/overrides.rs index 8a84188fe..e67ea86f2 100644 --- a/crates/uv-configuration/src/overrides.rs +++ b/crates/uv-configuration/src/overrides.rs @@ -3,9 +3,9 @@ use std::borrow::Cow; use either::Either; use rustc_hash::{FxBuildHasher, FxHashMap}; +use uv_distribution_types::Requirement; use uv_normalize::PackageName; use uv_pep508::MarkerTree; -use uv_pypi_types::Requirement; /// A set of overrides for a set of requirements. #[derive(Debug, Default, Clone)] diff --git a/crates/uv-configuration/src/package_options.rs b/crates/uv-configuration/src/package_options.rs index 5c23baf86..b16a0be4c 100644 --- a/crates/uv-configuration/src/package_options.rs +++ b/crates/uv-configuration/src/package_options.rs @@ -1,11 +1,12 @@ -use either::Either; use std::path::{Path, PathBuf}; -use uv_pep508::PackageName; +use either::Either; use rustc_hash::FxHashMap; + use uv_cache::Refresh; use uv_cache_info::Timestamp; -use uv_pypi_types::Requirement; +use uv_distribution_types::Requirement; +use uv_pep508::PackageName; /// Whether to reinstall packages. #[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)] diff --git a/crates/uv-dispatch/src/lib.rs b/crates/uv-dispatch/src/lib.rs index 421a0a2a5..891ca8a38 100644 --- a/crates/uv-dispatch/src/lib.rs +++ b/crates/uv-dispatch/src/lib.rs @@ -24,11 +24,11 @@ use uv_distribution::DistributionDatabase; use uv_distribution_filename::DistFilename; use uv_distribution_types::{ CachedDist, DependencyMetadata, Identifier, IndexCapabilities, IndexLocations, - IsBuildBackendError, Name, Resolution, SourceDist, VersionOrUrlRef, + IsBuildBackendError, Name, Requirement, Resolution, SourceDist, VersionOrUrlRef, }; use uv_git::GitResolver; use uv_installer::{Installer, Plan, Planner, Preparer, SitePackages}; -use uv_pypi_types::{Conflicts, Requirement}; +use uv_pypi_types::Conflicts; use uv_python::{Interpreter, PythonEnvironment}; use uv_resolver::{ ExcludeNewer, FlatIndex, Flexibility, InMemoryIndex, Manifest, OptionsBuilder, diff --git a/crates/uv-distribution-types/Cargo.toml b/crates/uv-distribution-types/Cargo.toml index e5a723c43..b77f5dd05 100644 --- a/crates/uv-distribution-types/Cargo.toml +++ b/crates/uv-distribution-types/Cargo.toml @@ -46,3 +46,8 @@ thiserror = { workspace = true } tracing = { workspace = true } url = { workspace = true } version-ranges = { workspace = true } + + +[dev-dependencies] +toml = { workspace = true } + diff --git a/crates/uv-distribution-types/src/lib.rs b/crates/uv-distribution-types/src/lib.rs index 506f8f114..dea83c8b2 100644 --- a/crates/uv-distribution-types/src/lib.rs +++ b/crates/uv-distribution-types/src/lib.rs @@ -71,6 +71,7 @@ pub use crate::origin::*; pub use crate::pip_index::*; pub use crate::prioritized_distribution::*; pub use crate::requested::*; +pub use crate::requirement::*; pub use crate::resolution::*; pub use crate::resolved::*; pub use crate::specified_requirement::*; @@ -96,6 +97,7 @@ mod origin; mod pip_index; mod prioritized_distribution; mod requested; +mod requirement; mod resolution; mod resolved; mod specified_requirement; diff --git a/crates/uv-pypi-types/src/requirement.rs b/crates/uv-distribution-types/src/requirement.rs similarity index 99% rename from crates/uv-pypi-types/src/requirement.rs rename to crates/uv-distribution-types/src/requirement.rs index 00190e8a5..bc761b092 100644 --- a/crates/uv-pypi-types/src/requirement.rs +++ b/crates/uv-distribution-types/src/requirement.rs @@ -15,7 +15,7 @@ use uv_pep508::{ marker, MarkerEnvironment, MarkerTree, RequirementOrigin, VerbatimUrl, VersionOrUrl, }; -use crate::{ +use uv_pypi_types::{ ConflictItem, Hashes, ParsedArchiveUrl, ParsedDirectoryUrl, ParsedGitUrl, ParsedPathUrl, ParsedUrl, ParsedUrlError, VerbatimParsedUrl, }; diff --git a/crates/uv-distribution-types/src/resolution.rs b/crates/uv-distribution-types/src/resolution.rs index a294087c8..efbfb616f 100644 --- a/crates/uv-distribution-types/src/resolution.rs +++ b/crates/uv-distribution-types/src/resolution.rs @@ -1,9 +1,9 @@ use uv_distribution_filename::DistExtension; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep508::MarkerTree; -use uv_pypi_types::{HashDigest, HashDigests, RequirementSource}; +use uv_pypi_types::{HashDigest, HashDigests}; -use crate::{BuiltDist, Diagnostic, Dist, Name, ResolvedDist, SourceDist}; +use crate::{BuiltDist, Diagnostic, Dist, Name, RequirementSource, ResolvedDist, SourceDist}; /// A set of packages pinned at specific versions. /// diff --git a/crates/uv-distribution-types/src/specified_requirement.rs b/crates/uv-distribution-types/src/specified_requirement.rs index 62744020b..3e96d9a71 100644 --- a/crates/uv-distribution-types/src/specified_requirement.rs +++ b/crates/uv-distribution-types/src/specified_requirement.rs @@ -3,9 +3,9 @@ use std::fmt::{Display, Formatter}; use uv_normalize::ExtraName; use uv_pep508::{MarkerEnvironment, UnnamedRequirement}; -use uv_pypi_types::{Hashes, Requirement, RequirementSource}; +use uv_pypi_types::Hashes; -use crate::VerbatimParsedUrl; +use crate::{Requirement, RequirementSource, VerbatimParsedUrl}; /// An [`UnresolvedRequirement`] with additional metadata from `requirements.txt`, currently only /// hashes but in the future also editable and similar information. diff --git a/crates/uv-distribution/src/metadata/build_requires.rs b/crates/uv-distribution/src/metadata/build_requires.rs index 56d35b63f..6f84e7470 100644 --- a/crates/uv-distribution/src/metadata/build_requires.rs +++ b/crates/uv-distribution/src/metadata/build_requires.rs @@ -2,7 +2,7 @@ use std::collections::BTreeMap; use std::path::Path; use uv_configuration::SourceStrategy; -use uv_distribution_types::IndexLocations; +use uv_distribution_types::{IndexLocations, Requirement}; use uv_normalize::PackageName; use uv_workspace::pyproject::ToolUvSources; use uv_workspace::{ @@ -15,7 +15,7 @@ use crate::metadata::{LoweredRequirement, MetadataError}; #[derive(Debug, Clone)] pub struct BuildRequires { pub name: Option, - pub requires_dist: Vec, + pub requires_dist: Vec, } impl BuildRequires { @@ -27,7 +27,7 @@ impl BuildRequires { requires_dist: metadata .requires_dist .into_iter() - .map(uv_pypi_types::Requirement::from) + .map(Requirement::from) .collect(), } } @@ -124,10 +124,7 @@ impl BuildRequires { }) }) .collect::, _>>()?, - SourceStrategy::Disabled => requires_dist - .into_iter() - .map(uv_pypi_types::Requirement::from) - .collect(), + SourceStrategy::Disabled => requires_dist.into_iter().map(Requirement::from).collect(), }; Ok(Self { @@ -199,10 +196,7 @@ impl BuildRequires { }) }) .collect::, _>>()?, - SourceStrategy::Disabled => requires_dist - .into_iter() - .map(uv_pypi_types::Requirement::from) - .collect(), + SourceStrategy::Disabled => requires_dist.into_iter().map(Requirement::from).collect(), }; Ok(Self { diff --git a/crates/uv-distribution/src/metadata/lowering.rs b/crates/uv-distribution/src/metadata/lowering.rs index 02934c8e5..ca74feef6 100644 --- a/crates/uv-distribution/src/metadata/lowering.rs +++ b/crates/uv-distribution/src/metadata/lowering.rs @@ -7,14 +7,14 @@ use thiserror::Error; use url::Url; use uv_distribution_filename::DistExtension; -use uv_distribution_types::{Index, IndexLocations, IndexName, Origin}; +use uv_distribution_types::{ + Index, IndexLocations, IndexName, Origin, Requirement, RequirementSource, +}; use uv_git_types::{GitReference, GitUrl, GitUrlParseError}; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep440::VersionSpecifiers; use uv_pep508::{looks_like_git_repository, MarkerTree, VerbatimUrl, VersionOrUrl}; -use uv_pypi_types::{ - ConflictItem, ParsedUrlError, Requirement, RequirementSource, VerbatimParsedUrl, -}; +use uv_pypi_types::{ConflictItem, ParsedUrlError, VerbatimParsedUrl}; use uv_workspace::pyproject::{PyProjectToml, Source, Sources}; use uv_workspace::Workspace; diff --git a/crates/uv-distribution/src/metadata/mod.rs b/crates/uv-distribution/src/metadata/mod.rs index cfd6d174f..1f08b0015 100644 --- a/crates/uv-distribution/src/metadata/mod.rs +++ b/crates/uv-distribution/src/metadata/mod.rs @@ -4,7 +4,7 @@ use std::path::Path; use thiserror::Error; use uv_configuration::SourceStrategy; -use uv_distribution_types::{GitSourceUrl, IndexLocations}; +use uv_distribution_types::{GitSourceUrl, IndexLocations, Requirement}; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep440::{Version, VersionSpecifiers}; use uv_pypi_types::{HashDigests, ResolutionMetadata}; @@ -46,10 +46,10 @@ pub struct Metadata { pub name: PackageName, pub version: Version, // Optional fields - pub requires_dist: Vec, + pub requires_dist: Vec, pub requires_python: Option, pub provides_extras: Vec, - pub dependency_groups: BTreeMap>, + pub dependency_groups: BTreeMap>, pub dynamic: bool, } @@ -63,7 +63,7 @@ impl Metadata { requires_dist: metadata .requires_dist .into_iter() - .map(uv_pypi_types::Requirement::from) + .map(Requirement::from) .collect(), requires_python: metadata.requires_python, provides_extras: metadata.provides_extras, diff --git a/crates/uv-distribution/src/metadata/requires_dist.rs b/crates/uv-distribution/src/metadata/requires_dist.rs index add14ee9d..e45f6db01 100644 --- a/crates/uv-distribution/src/metadata/requires_dist.rs +++ b/crates/uv-distribution/src/metadata/requires_dist.rs @@ -5,7 +5,7 @@ use std::slice; use rustc_hash::FxHashSet; use uv_configuration::SourceStrategy; -use uv_distribution_types::IndexLocations; +use uv_distribution_types::{IndexLocations, Requirement}; use uv_normalize::{ExtraName, GroupName, PackageName, DEV_DEPENDENCIES}; use uv_pep508::MarkerTree; use uv_workspace::dependency_groups::FlatDependencyGroups; @@ -18,9 +18,9 @@ use crate::Metadata; #[derive(Debug, Clone)] pub struct RequiresDist { pub name: PackageName, - pub requires_dist: Vec, + pub requires_dist: Vec, pub provides_extras: Vec, - pub dependency_groups: BTreeMap>, + pub dependency_groups: BTreeMap>, pub dynamic: bool, } @@ -33,7 +33,7 @@ impl RequiresDist { requires_dist: metadata .requires_dist .into_iter() - .map(uv_pypi_types::Requirement::from) + .map(Requirement::from) .collect(), provides_extras: metadata.provides_extras, dependency_groups: BTreeMap::default(), @@ -186,15 +186,11 @@ impl RequiresDist { ) }) .collect::, _>>(), - SourceStrategy::Disabled => Ok(requirements - .into_iter() - .map(uv_pypi_types::Requirement::from) - .collect()), + SourceStrategy::Disabled => { + Ok(requirements.into_iter().map(Requirement::from).collect()) + } }?; - Ok::<(GroupName, Vec), MetadataError>(( - name, - requirements, - )) + Ok::<(GroupName, Vec), MetadataError>((name, requirements)) }) .collect::, _>>()?; @@ -227,10 +223,7 @@ impl RequiresDist { }) }) .collect::, _>>()?, - SourceStrategy::Disabled => requires_dist - .into_iter() - .map(uv_pypi_types::Requirement::from) - .collect(), + SourceStrategy::Disabled => requires_dist.into_iter().map(Requirement::from).collect(), }; Ok(Self { @@ -360,14 +353,11 @@ impl From for RequiresDist { /// The [`FlatRequiresDist`] struct is used to flatten out the recursive dependencies, i.e., convert /// from the former to the latter. #[derive(Debug, Clone, PartialEq, Eq)] -pub struct FlatRequiresDist(Vec); +pub struct FlatRequiresDist(Vec); impl FlatRequiresDist { /// Flatten a set of requirements, resolving any self-references. - pub fn from_requirements( - requirements: Vec, - name: &PackageName, - ) -> Self { + pub fn from_requirements(requirements: Vec, name: &PackageName) -> Self { // If there are no self-references, we can return early. if requirements.iter().all(|req| req.name != *name) { return Self(requirements); @@ -400,7 +390,7 @@ impl FlatRequiresDist { let requirement = { let mut marker = marker; marker.and(requirement.marker); - uv_pypi_types::Requirement { + Requirement { name: requirement.name.clone(), extras: requirement.extras.clone(), groups: requirement.groups.clone(), @@ -434,7 +424,7 @@ impl FlatRequiresDist { for req in &requirements { if req.name == *name { if !req.source.is_empty() { - flattened.push(uv_pypi_types::Requirement { + flattened.push(Requirement { name: req.name.clone(), extras: vec![], groups: req.groups.clone(), @@ -450,14 +440,14 @@ impl FlatRequiresDist { } /// Consume the [`FlatRequiresDist`] and return the inner vector. - pub fn into_inner(self) -> Vec { + pub fn into_inner(self) -> Vec { self.0 } } impl IntoIterator for FlatRequiresDist { - type Item = uv_pypi_types::Requirement; - type IntoIter = std::vec::IntoIter; + type Item = Requirement; + type IntoIter = std::vec::IntoIter; fn into_iter(self) -> Self::IntoIter { self.0.into_iter() diff --git a/crates/uv-installer/src/plan.rs b/crates/uv-installer/src/plan.rs index 67ac5c26e..ee6c6dd27 100644 --- a/crates/uv-installer/src/plan.rs +++ b/crates/uv-installer/src/plan.rs @@ -10,11 +10,11 @@ use uv_distribution::{ }; use uv_distribution_types::{ BuiltDist, CachedDirectUrlDist, CachedDist, Dist, Error, Hashed, IndexLocations, InstalledDist, - Name, Resolution, ResolvedDist, SourceDist, + Name, RequirementSource, Resolution, ResolvedDist, SourceDist, }; use uv_fs::Simplified; use uv_platform_tags::Tags; -use uv_pypi_types::{RequirementSource, VerbatimParsedUrl}; +use uv_pypi_types::VerbatimParsedUrl; use uv_python::PythonEnvironment; use uv_types::HashStrategy; diff --git a/crates/uv-installer/src/satisfies.rs b/crates/uv-installer/src/satisfies.rs index f91c7ff0f..7704a99eb 100644 --- a/crates/uv-installer/src/satisfies.rs +++ b/crates/uv-installer/src/satisfies.rs @@ -6,9 +6,9 @@ use url::Url; use uv_cache_info::CacheInfo; use uv_cache_key::{CanonicalUrl, RepositoryUrl}; -use uv_distribution_types::{InstalledDirectUrlDist, InstalledDist}; +use uv_distribution_types::{InstalledDirectUrlDist, InstalledDist, RequirementSource}; use uv_git_types::GitOid; -use uv_pypi_types::{DirInfo, DirectUrl, RequirementSource, VcsInfo, VcsKind}; +use uv_pypi_types::{DirInfo, DirectUrl, VcsInfo, VcsKind}; #[derive(Debug, Copy, Clone)] pub(crate) enum RequirementSatisfaction { diff --git a/crates/uv-installer/src/site_packages.rs b/crates/uv-installer/src/site_packages.rs index 7fa26be1d..d2d0479f8 100644 --- a/crates/uv-installer/src/site_packages.rs +++ b/crates/uv-installer/src/site_packages.rs @@ -9,14 +9,14 @@ use rustc_hash::{FxBuildHasher, FxHashMap, FxHashSet}; use url::Url; use uv_distribution_types::{ - Diagnostic, InstalledDist, Name, NameRequirementSpecification, UnresolvedRequirement, - UnresolvedRequirementSpecification, + Diagnostic, InstalledDist, Name, NameRequirementSpecification, Requirement, + UnresolvedRequirement, UnresolvedRequirementSpecification, }; use uv_fs::Simplified; use uv_normalize::PackageName; use uv_pep440::{Version, VersionSpecifiers}; use uv_pep508::VersionOrUrl; -use uv_pypi_types::{Requirement, ResolverMarkerEnvironment, VerbatimParsedUrl}; +use uv_pypi_types::{ResolverMarkerEnvironment, VerbatimParsedUrl}; use uv_python::{Interpreter, PythonEnvironment}; use uv_types::InstalledPackagesProvider; use uv_warnings::warn_user; diff --git a/crates/uv-pypi-types/Cargo.toml b/crates/uv-pypi-types/Cargo.toml index 4261fe720..2393240b9 100644 --- a/crates/uv-pypi-types/Cargo.toml +++ b/crates/uv-pypi-types/Cargo.toml @@ -17,7 +17,6 @@ workspace = true [dependencies] uv-distribution-filename = { workspace = true } -uv-fs = { workspace = true, features = ["serde"] } uv-git-types = { workspace = true } uv-normalize = { workspace = true } uv-pep440 = { workspace = true } @@ -37,7 +36,6 @@ schemars = { workspace = true, optional = true } serde = { workspace = true } serde-untagged = { workspace = true } thiserror = { workspace = true } -toml = { workspace = true } toml_edit = { workspace = true } tracing = { workspace = true } url = { workspace = true } diff --git a/crates/uv-pypi-types/src/lib.rs b/crates/uv-pypi-types/src/lib.rs index a5c9ec8a4..06a9b50db 100644 --- a/crates/uv-pypi-types/src/lib.rs +++ b/crates/uv-pypi-types/src/lib.rs @@ -7,7 +7,6 @@ pub use lenient_requirement::*; pub use marker_environment::*; pub use metadata::*; pub use parsed_url::*; -pub use requirement::*; pub use scheme::*; pub use simple_json::*; pub use supported_environments::*; @@ -21,7 +20,6 @@ mod lenient_requirement; mod marker_environment; mod metadata; mod parsed_url; -mod requirement; mod scheme; mod simple_json; mod supported_environments; diff --git a/crates/uv-requirements-txt/src/lib.rs b/crates/uv-requirements-txt/src/lib.rs index f191f2b97..7194ce292 100644 --- a/crates/uv-requirements-txt/src/lib.rs +++ b/crates/uv-requirements-txt/src/lib.rs @@ -48,10 +48,12 @@ use url::Url; use uv_client::BaseClient; use uv_client::BaseClientBuilder; use uv_configuration::{NoBinary, NoBuild, PackageNameSpecifier}; -use uv_distribution_types::{UnresolvedRequirement, UnresolvedRequirementSpecification}; +use uv_distribution_types::{ + Requirement, UnresolvedRequirement, UnresolvedRequirementSpecification, +}; use uv_fs::Simplified; use uv_pep508::{expand_env_vars, Pep508Error, RequirementOrigin, VerbatimUrl}; -use uv_pypi_types::{Requirement, VerbatimParsedUrl}; +use uv_pypi_types::VerbatimParsedUrl; use crate::requirement::EditableError; pub use crate::requirement::RequirementsTxtRequirement; diff --git a/crates/uv-requirements/src/extras.rs b/crates/uv-requirements/src/extras.rs index 801abb7c3..39efe5a9a 100644 --- a/crates/uv-requirements/src/extras.rs +++ b/crates/uv-requirements/src/extras.rs @@ -4,7 +4,7 @@ use futures::{stream::FuturesOrdered, TryStreamExt}; use uv_distribution::{DistributionDatabase, Reporter}; use uv_distribution_types::DistributionMetadata; -use uv_pypi_types::Requirement; +use uv_distribution_types::Requirement; use uv_resolver::{InMemoryIndex, MetadataResponse}; use uv_types::{BuildContext, HashStrategy}; diff --git a/crates/uv-requirements/src/lib.rs b/crates/uv-requirements/src/lib.rs index bbe76a1b9..2759ee30f 100644 --- a/crates/uv-requirements/src/lib.rs +++ b/crates/uv-requirements/src/lib.rs @@ -5,8 +5,9 @@ pub use crate::sources::*; pub use crate::specification::*; pub use crate::unnamed::*; -use uv_distribution_types::{Dist, DistErrorKind, GitSourceDist, SourceDist}; -use uv_pypi_types::{Requirement, RequirementSource}; +use uv_distribution_types::{ + Dist, DistErrorKind, GitSourceDist, Requirement, RequirementSource, SourceDist, +}; mod extras; mod lookahead; diff --git a/crates/uv-requirements/src/lookahead.rs b/crates/uv-requirements/src/lookahead.rs index c93a87b1d..f0aaa9274 100644 --- a/crates/uv-requirements/src/lookahead.rs +++ b/crates/uv-requirements/src/lookahead.rs @@ -7,8 +7,7 @@ use tracing::trace; use uv_configuration::{Constraints, Overrides}; use uv_distribution::{DistributionDatabase, Reporter}; -use uv_distribution_types::{Dist, DistributionMetadata}; -use uv_pypi_types::{Requirement, RequirementSource}; +use uv_distribution_types::{Dist, DistributionMetadata, Requirement, RequirementSource}; use uv_resolver::{InMemoryIndex, MetadataResponse, ResolverEnvironment}; use uv_types::{BuildContext, HashStrategy, RequestedRequirements}; diff --git a/crates/uv-requirements/src/source_tree.rs b/crates/uv-requirements/src/source_tree.rs index 2214aba35..c831c3e25 100644 --- a/crates/uv-requirements/src/source_tree.rs +++ b/crates/uv-requirements/src/source_tree.rs @@ -9,13 +9,13 @@ use url::Url; use uv_configuration::{DependencyGroups, ExtrasSpecification}; use uv_distribution::{DistributionDatabase, FlatRequiresDist, Reporter, RequiresDist}; +use uv_distribution_types::Requirement; use uv_distribution_types::{ BuildableSource, DirectorySourceUrl, HashGeneration, HashPolicy, SourceUrl, VersionId, }; use uv_fs::Simplified; use uv_normalize::{ExtraName, PackageName}; use uv_pep508::RequirementOrigin; -use uv_pypi_types::Requirement; use uv_resolver::{InMemoryIndex, MetadataResponse}; use uv_types::{BuildContext, HashStrategy}; diff --git a/crates/uv-requirements/src/specification.rs b/crates/uv-requirements/src/specification.rs index 002f07486..4e234a309 100644 --- a/crates/uv-requirements/src/specification.rs +++ b/crates/uv-requirements/src/specification.rs @@ -36,6 +36,7 @@ use tracing::instrument; use uv_cache_key::CanonicalUrl; use uv_client::BaseClientBuilder; use uv_configuration::{DependencyGroups, NoBinary, NoBuild}; +use uv_distribution_types::Requirement; use uv_distribution_types::{ IndexUrl, NameRequirementSpecification, UnresolvedRequirement, UnresolvedRequirementSpecification, @@ -43,7 +44,6 @@ use uv_distribution_types::{ use uv_fs::{Simplified, CWD}; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep508::{MarkerTree, UnnamedRequirement, UnnamedRequirementUrl}; -use uv_pypi_types::Requirement; use uv_pypi_types::VerbatimParsedUrl; use uv_requirements_txt::{RequirementsTxt, RequirementsTxtRequirement}; use uv_warnings::warn_user; diff --git a/crates/uv-requirements/src/unnamed.rs b/crates/uv-requirements/src/unnamed.rs index 9356e42de..d58e20a18 100644 --- a/crates/uv-requirements/src/unnamed.rs +++ b/crates/uv-requirements/src/unnamed.rs @@ -9,20 +9,21 @@ use serde::Deserialize; use tracing::debug; use url::Host; -use crate::Error; use uv_distribution::{DistributionDatabase, Reporter}; use uv_distribution_filename::{DistExtension, SourceDistFilename, WheelFilename}; use uv_distribution_types::{ BuildableSource, DirectSourceUrl, DirectorySourceUrl, GitSourceUrl, PathSourceUrl, - RemoteSource, SourceUrl, VersionId, + RemoteSource, Requirement, SourceUrl, VersionId, }; use uv_normalize::PackageName; use uv_pep508::{UnnamedRequirement, VersionOrUrl}; -use uv_pypi_types::{Metadata10, Requirement}; +use uv_pypi_types::Metadata10; use uv_pypi_types::{ParsedUrl, VerbatimParsedUrl}; use uv_resolver::{InMemoryIndex, MetadataResponse}; use uv_types::{BuildContext, HashStrategy}; +use crate::Error; + /// Like [`RequirementsSpecification`], but with concrete names for all requirements. pub struct NamedRequirementsResolver<'a, Context: BuildContext> { /// Whether to check hashes for distributions. diff --git a/crates/uv-resolver/src/lock/mod.rs b/crates/uv-resolver/src/lock/mod.rs index 3376ff55e..e1b5ba3b5 100644 --- a/crates/uv-resolver/src/lock/mod.rs +++ b/crates/uv-resolver/src/lock/mod.rs @@ -25,10 +25,11 @@ use uv_distribution_filename::{ BuildTag, DistExtension, ExtensionError, SourceDistExtension, WheelFilename, }; use uv_distribution_types::{ - BuiltDist, DependencyMetadata, DirectUrlBuiltDist, DirectUrlSourceDist, DirectorySourceDist, - Dist, DistributionMetadata, FileLocation, GitSourceDist, IndexLocations, IndexUrl, Name, - PathBuiltDist, PathSourceDist, RegistryBuiltDist, RegistryBuiltWheel, RegistrySourceDist, - RemoteSource, ResolvedDist, StaticMetadata, ToUrlError, UrlString, + redact_credentials, BuiltDist, DependencyMetadata, DirectUrlBuiltDist, DirectUrlSourceDist, + DirectorySourceDist, Dist, DistributionMetadata, FileLocation, GitSourceDist, IndexLocations, + IndexUrl, Name, PathBuiltDist, PathSourceDist, RegistryBuiltDist, RegistryBuiltWheel, + RegistrySourceDist, RemoteSource, Requirement, RequirementSource, ResolvedDist, StaticMetadata, + ToUrlError, UrlString, }; use uv_fs::{relative_to, PortablePath, PortablePathBuf}; use uv_git::{RepositoryReference, ResolvedRepositoryReference}; @@ -40,8 +41,7 @@ use uv_platform_tags::{ AbiTag, IncompatibleTag, LanguageTag, PlatformTag, TagCompatibility, TagPriority, Tags, }; use uv_pypi_types::{ - redact_credentials, ConflictPackage, Conflicts, HashDigest, HashDigests, ParsedArchiveUrl, - ParsedGitUrl, Requirement, RequirementSource, + ConflictPackage, Conflicts, HashDigest, HashDigests, ParsedArchiveUrl, ParsedGitUrl, }; use uv_small_str::SmallString; use uv_types::{BuildContext, HashStrategy}; diff --git a/crates/uv-resolver/src/manifest.rs b/crates/uv-resolver/src/manifest.rs index 949acbccf..6533a3aab 100644 --- a/crates/uv-resolver/src/manifest.rs +++ b/crates/uv-resolver/src/manifest.rs @@ -4,8 +4,8 @@ use std::collections::BTreeSet; use either::Either; use uv_configuration::{Constraints, Overrides}; +use uv_distribution_types::Requirement; use uv_normalize::PackageName; -use uv_pypi_types::Requirement; use uv_types::RequestedRequirements; use crate::preferences::Preferences; diff --git a/crates/uv-resolver/src/prerelease.rs b/crates/uv-resolver/src/prerelease.rs index ea6843a89..b646dce15 100644 --- a/crates/uv-resolver/src/prerelease.rs +++ b/crates/uv-resolver/src/prerelease.rs @@ -1,11 +1,10 @@ -use uv_pypi_types::RequirementSource; +use uv_distribution_types::RequirementSource; +use uv_normalize::PackageName; +use uv_pep440::Operator; use crate::resolver::ForkSet; use crate::{DependencyMode, Manifest, ResolverEnvironment}; -use uv_normalize::PackageName; -use uv_pep440::Operator; - #[derive(Debug, Default, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)] #[serde(deny_unknown_fields, rename_all = "kebab-case")] #[cfg_attr(feature = "clap", derive(clap::ValueEnum))] diff --git a/crates/uv-resolver/src/pubgrub/dependencies.rs b/crates/uv-resolver/src/pubgrub/dependencies.rs index a390aab80..defe3e5fd 100644 --- a/crates/uv-resolver/src/pubgrub/dependencies.rs +++ b/crates/uv-resolver/src/pubgrub/dependencies.rs @@ -4,11 +4,12 @@ use std::iter; use either::Either; use pubgrub::Ranges; +use uv_distribution_types::{Requirement, RequirementSource}; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep440::{Version, VersionSpecifiers}; use uv_pypi_types::{ Conflicts, ParsedArchiveUrl, ParsedDirectoryUrl, ParsedGitUrl, ParsedPathUrl, ParsedUrl, - Requirement, RequirementSource, VerbatimParsedUrl, + VerbatimParsedUrl, }; use crate::pubgrub::{PubGrubPackage, PubGrubPackageInner}; diff --git a/crates/uv-resolver/src/resolution/output.rs b/crates/uv-resolver/src/resolution/output.rs index 44cdaea04..dbfffe0b6 100644 --- a/crates/uv-resolver/src/resolution/output.rs +++ b/crates/uv-resolver/src/resolution/output.rs @@ -12,16 +12,14 @@ use rustc_hash::{FxBuildHasher, FxHashMap, FxHashSet}; use uv_configuration::{Constraints, Overrides}; use uv_distribution::Metadata; use uv_distribution_types::{ - Dist, DistributionMetadata, Edge, IndexUrl, Name, Node, ResolutionDiagnostic, ResolvedDist, - VersionId, VersionOrUrlRef, + Dist, DistributionMetadata, Edge, IndexUrl, Name, Node, Requirement, ResolutionDiagnostic, + ResolvedDist, VersionId, VersionOrUrlRef, }; use uv_git::GitResolver; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep440::{Version, VersionSpecifier}; use uv_pep508::{MarkerEnvironment, MarkerTree, MarkerTreeKind}; -use uv_pypi_types::{ - Conflicts, HashDigests, ParsedUrlError, Requirement, VerbatimParsedUrl, Yanked, -}; +use uv_pypi_types::{Conflicts, HashDigests, ParsedUrlError, VerbatimParsedUrl, Yanked}; use crate::graph_ops::{marker_reachability, simplify_conflict_markers}; use crate::pins::FilePins; diff --git a/crates/uv-resolver/src/resolver/fork_map.rs b/crates/uv-resolver/src/resolver/fork_map.rs index 6227c99de..90ac51779 100644 --- a/crates/uv-resolver/src/resolver/fork_map.rs +++ b/crates/uv-resolver/src/resolver/fork_map.rs @@ -1,6 +1,7 @@ use rustc_hash::FxHashMap; + +use uv_distribution_types::Requirement; use uv_pep508::{MarkerTree, PackageName}; -use uv_pypi_types::Requirement; use crate::ResolverEnvironment; diff --git a/crates/uv-resolver/src/resolver/indexes.rs b/crates/uv-resolver/src/resolver/indexes.rs index 8c85222f7..ae4915b04 100644 --- a/crates/uv-resolver/src/resolver/indexes.rs +++ b/crates/uv-resolver/src/resolver/indexes.rs @@ -1,7 +1,7 @@ -use uv_distribution_types::IndexUrl; +use uv_distribution_types::{IndexUrl, RequirementSource}; use uv_normalize::PackageName; use uv_pep508::VerbatimUrl; -use uv_pypi_types::{ConflictItem, RequirementSource}; +use uv_pypi_types::ConflictItem; use crate::resolver::ForkMap; use crate::{DependencyMode, Manifest, ResolverEnvironment}; diff --git a/crates/uv-resolver/src/resolver/mod.rs b/crates/uv-resolver/src/resolver/mod.rs index d1176d064..5f895a3ec 100644 --- a/crates/uv-resolver/src/resolver/mod.rs +++ b/crates/uv-resolver/src/resolver/mod.rs @@ -25,15 +25,15 @@ use uv_distribution::DistributionDatabase; use uv_distribution_types::{ BuiltDist, CompatibleDist, DerivationChain, Dist, DistErrorKind, DistributionMetadata, IncompatibleDist, IncompatibleSource, IncompatibleWheel, IndexCapabilities, IndexLocations, - IndexUrl, InstalledDist, PythonRequirementKind, RemoteSource, ResolvedDist, ResolvedDistRef, - SourceDist, VersionOrUrlRef, + IndexUrl, InstalledDist, PythonRequirementKind, RemoteSource, Requirement, ResolvedDist, + ResolvedDistRef, SourceDist, VersionOrUrlRef, }; use uv_git::GitResolver; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_pep440::{release_specifiers_to_ranges, Version, VersionSpecifiers, MIN_VERSION}; use uv_pep508::{MarkerExpression, MarkerOperator, MarkerTree, MarkerValueString}; use uv_platform_tags::Tags; -use uv_pypi_types::{ConflictItem, ConflictItemRef, Conflicts, Requirement, VerbatimParsedUrl}; +use uv_pypi_types::{ConflictItem, ConflictItemRef, Conflicts, VerbatimParsedUrl}; use uv_types::{BuildContext, HashStrategy, InstalledPackagesProvider}; use uv_warnings::warn_user_once; diff --git a/crates/uv-resolver/src/yanks.rs b/crates/uv-resolver/src/yanks.rs index 6c43f2ed9..f8cb27d8a 100644 --- a/crates/uv-resolver/src/yanks.rs +++ b/crates/uv-resolver/src/yanks.rs @@ -2,9 +2,9 @@ use std::sync::Arc; use rustc_hash::{FxHashMap, FxHashSet}; +use uv_distribution_types::RequirementSource; use uv_normalize::PackageName; use uv_pep440::Version; -use uv_pypi_types::RequirementSource; use crate::{DependencyMode, Manifest, ResolverEnvironment}; diff --git a/crates/uv-tool/Cargo.toml b/crates/uv-tool/Cargo.toml index 081162c01..d01a3209d 100644 --- a/crates/uv-tool/Cargo.toml +++ b/crates/uv-tool/Cargo.toml @@ -18,6 +18,7 @@ workspace = true [dependencies] uv-cache = { workspace = true } uv-dirs = { workspace = true } +uv-distribution-types = { workspace = true } uv-fs = { workspace = true } uv-install-wheel = { workspace = true } uv-installer = { workspace = true } diff --git a/crates/uv-tool/src/tool.rs b/crates/uv-tool/src/tool.rs index 4cbe4cb9c..ed9b2cb40 100644 --- a/crates/uv-tool/src/tool.rs +++ b/crates/uv-tool/src/tool.rs @@ -2,13 +2,11 @@ use std::fmt::{self, Display, Formatter}; use std::path::PathBuf; use serde::Deserialize; -use toml_edit::value; -use toml_edit::Table; -use toml_edit::Value; -use toml_edit::{Array, Item}; +use toml_edit::{value, Array, Item, Table, Value}; +use uv_distribution_types::Requirement; use uv_fs::{PortablePath, Simplified}; -use uv_pypi_types::{Requirement, VerbatimParsedUrl}; +use uv_pypi_types::VerbatimParsedUrl; use uv_settings::ToolOptions; /// A tool entry. diff --git a/crates/uv-types/src/hash.rs b/crates/uv-types/src/hash.rs index 795ea3880..27fb90392 100644 --- a/crates/uv-types/src/hash.rs +++ b/crates/uv-types/src/hash.rs @@ -6,14 +6,12 @@ use url::Url; use uv_configuration::HashCheckingMode; use uv_distribution_types::{ - DistributionMetadata, HashGeneration, HashPolicy, Name, Resolution, UnresolvedRequirement, - VersionId, + DistributionMetadata, HashGeneration, HashPolicy, Name, Requirement, RequirementSource, + Resolution, UnresolvedRequirement, VersionId, }; use uv_normalize::PackageName; use uv_pep440::Version; -use uv_pypi_types::{ - HashDigest, HashDigests, HashError, Requirement, RequirementSource, ResolverMarkerEnvironment, -}; +use uv_pypi_types::{HashDigest, HashDigests, HashError, ResolverMarkerEnvironment}; #[derive(Debug, Default, Clone)] pub enum HashStrategy { diff --git a/crates/uv-types/src/requirements.rs b/crates/uv-types/src/requirements.rs index 321e424fb..4d9afe632 100644 --- a/crates/uv-types/src/requirements.rs +++ b/crates/uv-types/src/requirements.rs @@ -1,5 +1,5 @@ +use uv_distribution_types::Requirement; use uv_normalize::ExtraName; -use uv_pypi_types::Requirement; /// A set of requirements as requested by a parent requirement. /// diff --git a/crates/uv-types/src/traits.rs b/crates/uv-types/src/traits.rs index 5beef36e7..6f724b27a 100644 --- a/crates/uv-types/src/traits.rs +++ b/crates/uv-types/src/traits.rs @@ -11,11 +11,10 @@ use uv_configuration::{BuildKind, BuildOptions, BuildOutput, ConfigSettings, Sou use uv_distribution_filename::DistFilename; use uv_distribution_types::{ CachedDist, DependencyMetadata, DistributionId, IndexCapabilities, IndexLocations, - InstalledDist, IsBuildBackendError, Resolution, SourceDist, + InstalledDist, IsBuildBackendError, Requirement, Resolution, SourceDist, }; use uv_git::GitResolver; use uv_pep508::PackageName; -use uv_pypi_types::Requirement; use uv_python::{Interpreter, PythonEnvironment}; use uv_workspace::WorkspaceCache; diff --git a/crates/uv-workspace/src/pyproject.rs b/crates/uv-workspace/src/pyproject.rs index d529dc7d5..9018cdcb5 100644 --- a/crates/uv-workspace/src/pyproject.rs +++ b/crates/uv-workspace/src/pyproject.rs @@ -19,7 +19,7 @@ use serde::{de::IntoDeserializer, de::SeqAccess, Deserialize, Deserializer, Seri use thiserror::Error; use url::Url; -use uv_distribution_types::{Index, IndexName}; +use uv_distribution_types::{Index, IndexName, RequirementSource}; use uv_fs::{relative_to, PortablePathBuf}; use uv_git_types::GitReference; use uv_macros::OptionsMetadata; @@ -27,8 +27,7 @@ use uv_normalize::{DefaultGroups, ExtraName, GroupName, PackageName}; use uv_pep440::{Version, VersionSpecifiers}; use uv_pep508::MarkerTree; use uv_pypi_types::{ - Conflicts, DependencyGroups, RequirementSource, SchemaConflicts, SupportedEnvironments, - VerbatimParsedUrl, + Conflicts, DependencyGroups, SchemaConflicts, SupportedEnvironments, VerbatimParsedUrl, }; #[derive(Error, Debug)] diff --git a/crates/uv-workspace/src/workspace.rs b/crates/uv-workspace/src/workspace.rs index 819c78c6a..e12ac31fb 100644 --- a/crates/uv-workspace/src/workspace.rs +++ b/crates/uv-workspace/src/workspace.rs @@ -8,14 +8,12 @@ use glob::{glob, GlobError, PatternError}; use rustc_hash::{FxHashMap, FxHashSet}; use tracing::{debug, trace, warn}; -use uv_distribution_types::Index; +use uv_distribution_types::{Index, Requirement, RequirementSource}; use uv_fs::{Simplified, CWD}; use uv_normalize::{GroupName, PackageName, DEV_DEPENDENCIES}; use uv_pep440::VersionSpecifiers; use uv_pep508::{MarkerTree, VerbatimUrl}; -use uv_pypi_types::{ - Conflicts, Requirement, RequirementSource, SupportedEnvironments, VerbatimParsedUrl, -}; +use uv_pypi_types::{Conflicts, SupportedEnvironments, VerbatimParsedUrl}; use uv_static::EnvVars; use uv_warnings::warn_user_once; diff --git a/crates/uv/src/commands/pip/compile.rs b/crates/uv/src/commands/pip/compile.rs index 9ef480501..d425f832a 100644 --- a/crates/uv/src/commands/pip/compile.rs +++ b/crates/uv/src/commands/pip/compile.rs @@ -20,12 +20,12 @@ use uv_configuration::{KeyringProviderType, TargetTriple}; use uv_dispatch::{BuildDispatch, SharedState}; use uv_distribution_types::{ DependencyMetadata, HashGeneration, Index, IndexLocations, NameRequirementSpecification, - Origin, UnresolvedRequirementSpecification, Verbatim, + Origin, Requirement, UnresolvedRequirementSpecification, Verbatim, }; use uv_fs::Simplified; use uv_install_wheel::LinkMode; use uv_normalize::{GroupName, PackageName}; -use uv_pypi_types::{Conflicts, Requirement, SupportedEnvironments}; +use uv_pypi_types::{Conflicts, SupportedEnvironments}; use uv_python::{ EnvironmentPreference, PythonEnvironment, PythonInstallation, PythonPreference, PythonRequest, PythonVersion, VersionRequest, diff --git a/crates/uv/src/commands/pip/install.rs b/crates/uv/src/commands/pip/install.rs index 6877473c4..5e0a50f66 100644 --- a/crates/uv/src/commands/pip/install.rs +++ b/crates/uv/src/commands/pip/install.rs @@ -16,15 +16,15 @@ use uv_configuration::{ use uv_configuration::{KeyringProviderType, TargetTriple}; use uv_dispatch::{BuildDispatch, SharedState}; use uv_distribution_types::{ - DependencyMetadata, Index, IndexLocations, NameRequirementSpecification, Origin, Resolution, - UnresolvedRequirementSpecification, + DependencyMetadata, Index, IndexLocations, NameRequirementSpecification, Origin, Requirement, + Resolution, UnresolvedRequirementSpecification, }; use uv_fs::Simplified; use uv_install_wheel::LinkMode; use uv_installer::{SatisfiesResult, SitePackages}; use uv_normalize::GroupName; use uv_pep508::PackageName; -use uv_pypi_types::{Conflicts, Requirement}; +use uv_pypi_types::Conflicts; use uv_python::{ EnvironmentPreference, Prefix, PythonEnvironment, PythonInstallation, PythonPreference, PythonRequest, PythonVersion, Target, diff --git a/crates/uv/src/commands/pip/uninstall.rs b/crates/uv/src/commands/pip/uninstall.rs index 7b4ea866b..d5de7b459 100644 --- a/crates/uv/src/commands/pip/uninstall.rs +++ b/crates/uv/src/commands/pip/uninstall.rs @@ -8,10 +8,10 @@ use tracing::debug; use uv_cache::Cache; use uv_client::BaseClientBuilder; use uv_configuration::{DryRun, KeyringProviderType}; +use uv_distribution_types::Requirement; use uv_distribution_types::{InstalledMetadata, Name, UnresolvedRequirement}; use uv_fs::Simplified; use uv_pep508::UnnamedRequirement; -use uv_pypi_types::Requirement; use uv_pypi_types::VerbatimParsedUrl; use uv_python::EnvironmentPreference; use uv_python::PythonRequest; diff --git a/crates/uv/src/commands/project/add.rs b/crates/uv/src/commands/project/add.rs index c9db765e9..7e7bb5c11 100644 --- a/crates/uv/src/commands/project/add.rs +++ b/crates/uv/src/commands/project/add.rs @@ -23,14 +23,15 @@ use uv_configuration::{ use uv_dispatch::BuildDispatch; use uv_distribution::DistributionDatabase; use uv_distribution_types::{ - Index, IndexName, IndexUrls, NameRequirementSpecification, UnresolvedRequirement, VersionId, + redact_credentials, Index, IndexName, IndexUrls, NameRequirementSpecification, Requirement, + RequirementSource, UnresolvedRequirement, VersionId, }; use uv_fs::Simplified; use uv_git::GIT_STORE; use uv_git_types::GitReference; use uv_normalize::{DefaultGroups, PackageName, DEV_DEPENDENCIES}; -use uv_pep508::{ExtraName, MarkerTree, Requirement, UnnamedRequirement, VersionOrUrl}; -use uv_pypi_types::{redact_credentials, ParsedUrl, RequirementSource, VerbatimParsedUrl}; +use uv_pep508::{ExtraName, MarkerTree, UnnamedRequirement, VersionOrUrl}; +use uv_pypi_types::{ParsedUrl, VerbatimParsedUrl}; use uv_python::{Interpreter, PythonDownloads, PythonEnvironment, PythonPreference, PythonRequest}; use uv_requirements::{NamedRequirementsResolver, RequirementsSource, RequirementsSpecification}; use uv_resolver::FlatIndex; @@ -928,7 +929,7 @@ fn augment_requirement( ) -> UnresolvedRequirement { match requirement { UnresolvedRequirement::Named(mut requirement) => { - UnresolvedRequirement::Named(uv_pypi_types::Requirement { + UnresolvedRequirement::Named(Requirement { marker: marker .map(|marker| { requirement.marker.and(marker); @@ -996,7 +997,7 @@ fn augment_requirement( /// Resolves the source for a requirement and processes it into a PEP 508 compliant format. fn resolve_requirement( - requirement: uv_pypi_types::Requirement, + requirement: Requirement, workspace: bool, editable: Option, index: Option, @@ -1004,7 +1005,7 @@ fn resolve_requirement( tag: Option, branch: Option, root: &Path, -) -> Result<(Requirement, Option), anyhow::Error> { +) -> Result<(uv_pep508::Requirement, Option), anyhow::Error> { let result = Source::from_requirement( &requirement.name, requirement.source.clone(), @@ -1197,7 +1198,7 @@ impl AddTargetSnapshot { #[derive(Debug, Clone)] struct DependencyEdit { dependency_type: DependencyType, - requirement: Requirement, + requirement: uv_pep508::Requirement, source: Option, edit: ArrayEdit, } diff --git a/crates/uv/src/commands/project/lock.rs b/crates/uv/src/commands/project/lock.rs index 8d22826f6..aea8dad77 100644 --- a/crates/uv/src/commands/project/lock.rs +++ b/crates/uv/src/commands/project/lock.rs @@ -19,12 +19,12 @@ use uv_dispatch::BuildDispatch; use uv_distribution::DistributionDatabase; use uv_distribution_types::{ DependencyMetadata, HashGeneration, Index, IndexLocations, NameRequirementSpecification, - UnresolvedRequirementSpecification, + Requirement, UnresolvedRequirementSpecification, }; use uv_git::ResolvedRepositoryReference; use uv_normalize::{GroupName, PackageName}; use uv_pep440::Version; -use uv_pypi_types::{Conflicts, Requirement, SupportedEnvironments}; +use uv_pypi_types::{Conflicts, SupportedEnvironments}; use uv_python::{Interpreter, PythonDownloads, PythonEnvironment, PythonPreference, PythonRequest}; use uv_requirements::upgrade::{read_lock_requirements, LockedRequirements}; use uv_requirements::ExtrasResolver; diff --git a/crates/uv/src/commands/project/lock_target.rs b/crates/uv/src/commands/project/lock_target.rs index ebd67d5b4..593d7f9f8 100644 --- a/crates/uv/src/commands/project/lock_target.rs +++ b/crates/uv/src/commands/project/lock_target.rs @@ -5,10 +5,10 @@ use itertools::Either; use uv_configuration::SourceStrategy; use uv_distribution::LoweredRequirement; -use uv_distribution_types::{Index, IndexLocations}; +use uv_distribution_types::{Index, IndexLocations, Requirement}; use uv_normalize::{GroupName, PackageName}; use uv_pep508::RequirementOrigin; -use uv_pypi_types::{Conflicts, Requirement, SupportedEnvironments, VerbatimParsedUrl}; +use uv_pypi_types::{Conflicts, SupportedEnvironments, VerbatimParsedUrl}; use uv_resolver::{Lock, LockVersion, RequiresPython, VERSION}; use uv_scripts::Pep723Script; use uv_workspace::dependency_groups::DependencyGroupError; diff --git a/crates/uv/src/commands/project/mod.rs b/crates/uv/src/commands/project/mod.rs index 578b9b3da..f66a1bf0c 100644 --- a/crates/uv/src/commands/project/mod.rs +++ b/crates/uv/src/commands/project/mod.rs @@ -19,7 +19,7 @@ use uv_configuration::{ use uv_dispatch::{BuildDispatch, SharedState}; use uv_distribution::{DistributionDatabase, LoweredRequirement}; use uv_distribution_types::{ - Index, Resolution, UnresolvedRequirement, UnresolvedRequirementSpecification, + Index, Requirement, Resolution, UnresolvedRequirement, UnresolvedRequirementSpecification, }; use uv_fs::{LockedFile, Simplified, CWD}; use uv_git::ResolvedRepositoryReference; @@ -27,7 +27,7 @@ use uv_installer::{SatisfiesResult, SitePackages}; use uv_normalize::{DefaultGroups, ExtraName, GroupName, PackageName, DEV_DEPENDENCIES}; use uv_pep440::{Version, VersionSpecifiers}; use uv_pep508::MarkerTreeContents; -use uv_pypi_types::{ConflictPackage, ConflictSet, Conflicts, Requirement}; +use uv_pypi_types::{ConflictPackage, ConflictSet, Conflicts}; use uv_python::{ EnvironmentPreference, Interpreter, InvalidEnvironmentKind, PythonDownloads, PythonEnvironment, PythonInstallation, PythonPreference, PythonRequest, PythonVariant, PythonVersionFile, diff --git a/crates/uv/src/commands/tool/common.rs b/crates/uv/src/commands/tool/common.rs index b4a958099..d0f1cef44 100644 --- a/crates/uv/src/commands/tool/common.rs +++ b/crates/uv/src/commands/tool/common.rs @@ -7,6 +7,7 @@ use std::{collections::BTreeSet, ffi::OsString}; use tracing::{debug, warn}; use uv_cache::Cache; use uv_client::BaseClientBuilder; +use uv_distribution_types::Requirement; use uv_distribution_types::{InstalledDist, Name}; #[cfg(unix)] use uv_fs::replace_symlink; @@ -14,7 +15,6 @@ use uv_fs::Simplified; use uv_installer::SitePackages; use uv_pep440::{Version, VersionSpecifier, VersionSpecifiers}; use uv_pep508::PackageName; -use uv_pypi_types::Requirement; use uv_python::{ EnvironmentPreference, Interpreter, PythonDownloads, PythonEnvironment, PythonInstallation, PythonPreference, PythonRequest, PythonVariant, VersionRequest, diff --git a/crates/uv/src/commands/tool/install.rs b/crates/uv/src/commands/tool/install.rs index 795f36ee8..56aa3a029 100644 --- a/crates/uv/src/commands/tool/install.rs +++ b/crates/uv/src/commands/tool/install.rs @@ -10,11 +10,13 @@ use uv_cache::{Cache, Refresh}; use uv_cache_info::Timestamp; use uv_client::BaseClientBuilder; use uv_configuration::{Concurrency, DryRun, PreviewMode, Reinstall, Upgrade}; -use uv_distribution_types::{NameRequirementSpecification, UnresolvedRequirementSpecification}; +use uv_distribution_types::{ + NameRequirementSpecification, Requirement, RequirementSource, + UnresolvedRequirementSpecification, +}; use uv_normalize::PackageName; use uv_pep440::{VersionSpecifier, VersionSpecifiers}; use uv_pep508::MarkerTree; -use uv_pypi_types::{Requirement, RequirementSource}; use uv_python::{ EnvironmentPreference, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest, }; diff --git a/crates/uv/src/commands/tool/run.rs b/crates/uv/src/commands/tool/run.rs index e3c88e2f9..460c7ff6e 100644 --- a/crates/uv/src/commands/tool/run.rs +++ b/crates/uv/src/commands/tool/run.rs @@ -19,15 +19,14 @@ use uv_cli::ExternalCommand; use uv_client::BaseClientBuilder; use uv_configuration::{Concurrency, PreviewMode}; use uv_distribution_types::{ - IndexUrl, Name, NameRequirementSpecification, UnresolvedRequirement, - UnresolvedRequirementSpecification, + IndexUrl, Name, NameRequirementSpecification, Requirement, RequirementSource, + UnresolvedRequirement, UnresolvedRequirementSpecification, }; use uv_fs::Simplified; use uv_installer::{SatisfiesResult, SitePackages}; use uv_normalize::PackageName; use uv_pep440::{VersionSpecifier, VersionSpecifiers}; use uv_pep508::MarkerTree; -use uv_pypi_types::{Requirement, RequirementSource}; use uv_python::VersionRequest; use uv_python::{ EnvironmentPreference, PythonDownloads, PythonEnvironment, PythonInstallation, diff --git a/crates/uv/src/commands/tool/upgrade.rs b/crates/uv/src/commands/tool/upgrade.rs index 8d83f871a..ca355a5e7 100644 --- a/crates/uv/src/commands/tool/upgrade.rs +++ b/crates/uv/src/commands/tool/upgrade.rs @@ -8,9 +8,9 @@ use tracing::debug; use uv_cache::Cache; use uv_client::BaseClientBuilder; use uv_configuration::{Concurrency, DryRun, PreviewMode}; +use uv_distribution_types::Requirement; use uv_fs::CWD; use uv_normalize::PackageName; -use uv_pypi_types::Requirement; use uv_python::{ EnvironmentPreference, Interpreter, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest, diff --git a/crates/uv/src/commands/venv.rs b/crates/uv/src/commands/venv.rs index 21270fe26..d679806c0 100644 --- a/crates/uv/src/commands/venv.rs +++ b/crates/uv/src/commands/venv.rs @@ -17,10 +17,10 @@ use uv_configuration::{ NoBinary, NoBuild, PreviewMode, SourceStrategy, }; use uv_dispatch::{BuildDispatch, SharedState}; +use uv_distribution_types::Requirement; use uv_distribution_types::{DependencyMetadata, Index, IndexLocations}; use uv_fs::Simplified; use uv_install_wheel::LinkMode; -use uv_pypi_types::Requirement; use uv_python::{ EnvironmentPreference, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest, }; diff --git a/crates/uv/src/settings.rs b/crates/uv/src/settings.rs index a9674b3b0..8e916178c 100644 --- a/crates/uv/src/settings.rs +++ b/crates/uv/src/settings.rs @@ -28,11 +28,11 @@ use uv_configuration::{ RequiredVersion, SourceStrategy, TargetTriple, TrustedHost, TrustedPublishing, Upgrade, VersionControlSystem, }; -use uv_distribution_types::{DependencyMetadata, Index, IndexLocations, IndexUrl}; +use uv_distribution_types::{DependencyMetadata, Index, IndexLocations, IndexUrl, Requirement}; use uv_install_wheel::LinkMode; use uv_normalize::{PackageName, PipGroupName}; use uv_pep508::{ExtraName, MarkerTree, RequirementOrigin}; -use uv_pypi_types::{Requirement, SupportedEnvironments}; +use uv_pypi_types::SupportedEnvironments; use uv_python::{Prefix, PythonDownloads, PythonPreference, PythonVersion, Target}; use uv_resolver::{ AnnotationStyle, DependencyMode, ExcludeNewer, ForkStrategy, PrereleaseMode, ResolutionMode,