mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
Move lowered requirement source type out of uv-pypi-types
(#12356)
## Summary This crate is for standards-compliant types, but this is explicitly a type that's custom to uv. It's also strange because we kind of want to reference `IndexUrl` on the registry type, but that's in a crate that _depends_ on `uv-pypi-types`, which to me is a sign that this is off.
This commit is contained in:
parent
cf20d9a1ca
commit
46967723bb
58 changed files with 145 additions and 160 deletions
6
Cargo.lock
generated
6
Cargo.lock
generated
|
@ -4927,11 +4927,11 @@ dependencies = [
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-cache-info",
|
"uv-cache-info",
|
||||||
"uv-cache-key",
|
"uv-cache-key",
|
||||||
|
"uv-distribution-types",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
"uv-pep440",
|
"uv-pep440",
|
||||||
"uv-pep508",
|
"uv-pep508",
|
||||||
"uv-platform-tags",
|
"uv-platform-tags",
|
||||||
"uv-pypi-types",
|
|
||||||
"uv-static",
|
"uv-static",
|
||||||
"which",
|
"which",
|
||||||
]
|
]
|
||||||
|
@ -5112,6 +5112,7 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"thiserror 2.0.12",
|
"thiserror 2.0.12",
|
||||||
|
"toml",
|
||||||
"tracing",
|
"tracing",
|
||||||
"url",
|
"url",
|
||||||
"uv-auth",
|
"uv-auth",
|
||||||
|
@ -5467,12 +5468,10 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde-untagged",
|
"serde-untagged",
|
||||||
"thiserror 2.0.12",
|
"thiserror 2.0.12",
|
||||||
"toml",
|
|
||||||
"toml_edit",
|
"toml_edit",
|
||||||
"tracing",
|
"tracing",
|
||||||
"url",
|
"url",
|
||||||
"uv-distribution-filename",
|
"uv-distribution-filename",
|
||||||
"uv-fs",
|
|
||||||
"uv-git-types",
|
"uv-git-types",
|
||||||
"uv-normalize",
|
"uv-normalize",
|
||||||
"uv-pep440",
|
"uv-pep440",
|
||||||
|
@ -5763,6 +5762,7 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
"uv-dirs",
|
"uv-dirs",
|
||||||
|
"uv-distribution-types",
|
||||||
"uv-fs",
|
"uv-fs",
|
||||||
"uv-install-wheel",
|
"uv-install-wheel",
|
||||||
"uv-installer",
|
"uv-installer",
|
||||||
|
|
|
@ -4,7 +4,7 @@ use uv_bench::criterion::black_box;
|
||||||
use uv_bench::criterion::{criterion_group, criterion_main, measurement::WallTime, Criterion};
|
use uv_bench::criterion::{criterion_group, criterion_main, measurement::WallTime, Criterion};
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::RegistryClientBuilder;
|
use uv_client::RegistryClientBuilder;
|
||||||
use uv_pypi_types::Requirement;
|
use uv_distribution_types::Requirement;
|
||||||
use uv_python::PythonEnvironment;
|
use uv_python::PythonEnvironment;
|
||||||
use uv_resolver::Manifest;
|
use uv_resolver::Manifest;
|
||||||
|
|
||||||
|
|
|
@ -29,11 +29,11 @@ use tracing::{debug, info_span, instrument, Instrument};
|
||||||
|
|
||||||
use uv_configuration::{BuildKind, BuildOutput, ConfigSettings, SourceStrategy};
|
use uv_configuration::{BuildKind, BuildOutput, ConfigSettings, SourceStrategy};
|
||||||
use uv_distribution::BuildRequires;
|
use uv_distribution::BuildRequires;
|
||||||
use uv_distribution_types::{IndexLocations, Resolution};
|
use uv_distribution_types::{IndexLocations, Requirement, Resolution};
|
||||||
use uv_fs::{PythonExt, Simplified};
|
use uv_fs::{PythonExt, Simplified};
|
||||||
use uv_pep440::Version;
|
use uv_pep440::Version;
|
||||||
use uv_pep508::PackageName;
|
use uv_pep508::PackageName;
|
||||||
use uv_pypi_types::{Requirement, VerbatimParsedUrl};
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
use uv_python::{Interpreter, PythonEnvironment};
|
use uv_python::{Interpreter, PythonEnvironment};
|
||||||
use uv_static::EnvVars;
|
use uv_static::EnvVars;
|
||||||
use uv_types::{AnyErrorBuild, BuildContext, BuildIsolation, BuildStack, SourceBuildTrait};
|
use uv_types::{AnyErrorBuild, BuildContext, BuildIsolation, BuildStack, SourceBuildTrait};
|
||||||
|
|
|
@ -20,11 +20,11 @@ uv-auth = { workspace = true }
|
||||||
uv-cache = { workspace = true }
|
uv-cache = { workspace = true }
|
||||||
uv-cache-info = { workspace = true }
|
uv-cache-info = { workspace = true }
|
||||||
uv-cache-key = { workspace = true }
|
uv-cache-key = { workspace = true }
|
||||||
|
uv-distribution-types = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-pep440 = { workspace = true }
|
uv-pep440 = { workspace = true }
|
||||||
uv-pep508 = { workspace = true, features = ["schemars"] }
|
uv-pep508 = { workspace = true, features = ["schemars"] }
|
||||||
uv-platform-tags = { workspace = true }
|
uv-platform-tags = { workspace = true }
|
||||||
uv-pypi-types = { workspace = true }
|
|
||||||
uv-static = { workspace = true }
|
uv-static = { workspace = true }
|
||||||
|
|
||||||
clap = { workspace = true, features = ["derive"], optional = true }
|
clap = { workspace = true, features = ["derive"], optional = true }
|
||||||
|
|
|
@ -3,9 +3,9 @@ use std::borrow::Cow;
|
||||||
use either::Either;
|
use either::Either;
|
||||||
use rustc_hash::FxHashMap;
|
use rustc_hash::FxHashMap;
|
||||||
|
|
||||||
|
use uv_distribution_types::{Requirement, RequirementSource};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep508::MarkerTree;
|
use uv_pep508::MarkerTree;
|
||||||
use uv_pypi_types::{Requirement, RequirementSource};
|
|
||||||
|
|
||||||
/// A set of constraints for a set of requirements.
|
/// A set of constraints for a set of requirements.
|
||||||
#[derive(Debug, Default, Clone)]
|
#[derive(Debug, Default, Clone)]
|
||||||
|
|
|
@ -3,9 +3,9 @@ use std::borrow::Cow;
|
||||||
use either::Either;
|
use either::Either;
|
||||||
use rustc_hash::{FxBuildHasher, FxHashMap};
|
use rustc_hash::{FxBuildHasher, FxHashMap};
|
||||||
|
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep508::MarkerTree;
|
use uv_pep508::MarkerTree;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
|
|
||||||
/// A set of overrides for a set of requirements.
|
/// A set of overrides for a set of requirements.
|
||||||
#[derive(Debug, Default, Clone)]
|
#[derive(Debug, Default, Clone)]
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
use either::Either;
|
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use uv_pep508::PackageName;
|
|
||||||
|
|
||||||
|
use either::Either;
|
||||||
use rustc_hash::FxHashMap;
|
use rustc_hash::FxHashMap;
|
||||||
|
|
||||||
use uv_cache::Refresh;
|
use uv_cache::Refresh;
|
||||||
use uv_cache_info::Timestamp;
|
use uv_cache_info::Timestamp;
|
||||||
use uv_pypi_types::Requirement;
|
use uv_distribution_types::Requirement;
|
||||||
|
use uv_pep508::PackageName;
|
||||||
|
|
||||||
/// Whether to reinstall packages.
|
/// Whether to reinstall packages.
|
||||||
#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
|
|
|
@ -24,11 +24,11 @@ use uv_distribution::DistributionDatabase;
|
||||||
use uv_distribution_filename::DistFilename;
|
use uv_distribution_filename::DistFilename;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
CachedDist, DependencyMetadata, Identifier, IndexCapabilities, IndexLocations,
|
CachedDist, DependencyMetadata, Identifier, IndexCapabilities, IndexLocations,
|
||||||
IsBuildBackendError, Name, Resolution, SourceDist, VersionOrUrlRef,
|
IsBuildBackendError, Name, Requirement, Resolution, SourceDist, VersionOrUrlRef,
|
||||||
};
|
};
|
||||||
use uv_git::GitResolver;
|
use uv_git::GitResolver;
|
||||||
use uv_installer::{Installer, Plan, Planner, Preparer, SitePackages};
|
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_python::{Interpreter, PythonEnvironment};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
ExcludeNewer, FlatIndex, Flexibility, InMemoryIndex, Manifest, OptionsBuilder,
|
ExcludeNewer, FlatIndex, Flexibility, InMemoryIndex, Manifest, OptionsBuilder,
|
||||||
|
|
|
@ -46,3 +46,8 @@ thiserror = { workspace = true }
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
url = { workspace = true }
|
url = { workspace = true }
|
||||||
version-ranges = { workspace = true }
|
version-ranges = { workspace = true }
|
||||||
|
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
toml = { workspace = true }
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ pub use crate::origin::*;
|
||||||
pub use crate::pip_index::*;
|
pub use crate::pip_index::*;
|
||||||
pub use crate::prioritized_distribution::*;
|
pub use crate::prioritized_distribution::*;
|
||||||
pub use crate::requested::*;
|
pub use crate::requested::*;
|
||||||
|
pub use crate::requirement::*;
|
||||||
pub use crate::resolution::*;
|
pub use crate::resolution::*;
|
||||||
pub use crate::resolved::*;
|
pub use crate::resolved::*;
|
||||||
pub use crate::specified_requirement::*;
|
pub use crate::specified_requirement::*;
|
||||||
|
@ -96,6 +97,7 @@ mod origin;
|
||||||
mod pip_index;
|
mod pip_index;
|
||||||
mod prioritized_distribution;
|
mod prioritized_distribution;
|
||||||
mod requested;
|
mod requested;
|
||||||
|
mod requirement;
|
||||||
mod resolution;
|
mod resolution;
|
||||||
mod resolved;
|
mod resolved;
|
||||||
mod specified_requirement;
|
mod specified_requirement;
|
||||||
|
|
|
@ -15,7 +15,7 @@ use uv_pep508::{
|
||||||
marker, MarkerEnvironment, MarkerTree, RequirementOrigin, VerbatimUrl, VersionOrUrl,
|
marker, MarkerEnvironment, MarkerTree, RequirementOrigin, VerbatimUrl, VersionOrUrl,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use uv_pypi_types::{
|
||||||
ConflictItem, Hashes, ParsedArchiveUrl, ParsedDirectoryUrl, ParsedGitUrl, ParsedPathUrl,
|
ConflictItem, Hashes, ParsedArchiveUrl, ParsedDirectoryUrl, ParsedGitUrl, ParsedPathUrl,
|
||||||
ParsedUrl, ParsedUrlError, VerbatimParsedUrl,
|
ParsedUrl, ParsedUrlError, VerbatimParsedUrl,
|
||||||
};
|
};
|
|
@ -1,9 +1,9 @@
|
||||||
use uv_distribution_filename::DistExtension;
|
use uv_distribution_filename::DistExtension;
|
||||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep508::MarkerTree;
|
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.
|
/// A set of packages pinned at specific versions.
|
||||||
///
|
///
|
||||||
|
|
|
@ -3,9 +3,9 @@ use std::fmt::{Display, Formatter};
|
||||||
|
|
||||||
use uv_normalize::ExtraName;
|
use uv_normalize::ExtraName;
|
||||||
use uv_pep508::{MarkerEnvironment, UnnamedRequirement};
|
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
|
/// An [`UnresolvedRequirement`] with additional metadata from `requirements.txt`, currently only
|
||||||
/// hashes but in the future also editable and similar information.
|
/// hashes but in the future also editable and similar information.
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::collections::BTreeMap;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use uv_configuration::SourceStrategy;
|
use uv_configuration::SourceStrategy;
|
||||||
use uv_distribution_types::IndexLocations;
|
use uv_distribution_types::{IndexLocations, Requirement};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_workspace::pyproject::ToolUvSources;
|
use uv_workspace::pyproject::ToolUvSources;
|
||||||
use uv_workspace::{
|
use uv_workspace::{
|
||||||
|
@ -15,7 +15,7 @@ use crate::metadata::{LoweredRequirement, MetadataError};
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct BuildRequires {
|
pub struct BuildRequires {
|
||||||
pub name: Option<PackageName>,
|
pub name: Option<PackageName>,
|
||||||
pub requires_dist: Vec<uv_pypi_types::Requirement>,
|
pub requires_dist: Vec<Requirement>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BuildRequires {
|
impl BuildRequires {
|
||||||
|
@ -27,7 +27,7 @@ impl BuildRequires {
|
||||||
requires_dist: metadata
|
requires_dist: metadata
|
||||||
.requires_dist
|
.requires_dist
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(uv_pypi_types::Requirement::from)
|
.map(Requirement::from)
|
||||||
.collect(),
|
.collect(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,10 +124,7 @@ impl BuildRequires {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>()?,
|
.collect::<Result<Vec<_>, _>>()?,
|
||||||
SourceStrategy::Disabled => requires_dist
|
SourceStrategy::Disabled => requires_dist.into_iter().map(Requirement::from).collect(),
|
||||||
.into_iter()
|
|
||||||
.map(uv_pypi_types::Requirement::from)
|
|
||||||
.collect(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
|
@ -199,10 +196,7 @@ impl BuildRequires {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>()?,
|
.collect::<Result<Vec<_>, _>>()?,
|
||||||
SourceStrategy::Disabled => requires_dist
|
SourceStrategy::Disabled => requires_dist.into_iter().map(Requirement::from).collect(),
|
||||||
.into_iter()
|
|
||||||
.map(uv_pypi_types::Requirement::from)
|
|
||||||
.collect(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
|
|
|
@ -7,14 +7,14 @@ use thiserror::Error;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use uv_distribution_filename::DistExtension;
|
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_git_types::{GitReference, GitUrl, GitUrlParseError};
|
||||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep440::VersionSpecifiers;
|
use uv_pep440::VersionSpecifiers;
|
||||||
use uv_pep508::{looks_like_git_repository, MarkerTree, VerbatimUrl, VersionOrUrl};
|
use uv_pep508::{looks_like_git_repository, MarkerTree, VerbatimUrl, VersionOrUrl};
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{ConflictItem, ParsedUrlError, VerbatimParsedUrl};
|
||||||
ConflictItem, ParsedUrlError, Requirement, RequirementSource, VerbatimParsedUrl,
|
|
||||||
};
|
|
||||||
use uv_workspace::pyproject::{PyProjectToml, Source, Sources};
|
use uv_workspace::pyproject::{PyProjectToml, Source, Sources};
|
||||||
use uv_workspace::Workspace;
|
use uv_workspace::Workspace;
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ use std::path::Path;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
use uv_configuration::SourceStrategy;
|
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_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep440::{Version, VersionSpecifiers};
|
use uv_pep440::{Version, VersionSpecifiers};
|
||||||
use uv_pypi_types::{HashDigests, ResolutionMetadata};
|
use uv_pypi_types::{HashDigests, ResolutionMetadata};
|
||||||
|
@ -46,10 +46,10 @@ pub struct Metadata {
|
||||||
pub name: PackageName,
|
pub name: PackageName,
|
||||||
pub version: Version,
|
pub version: Version,
|
||||||
// Optional fields
|
// Optional fields
|
||||||
pub requires_dist: Vec<uv_pypi_types::Requirement>,
|
pub requires_dist: Vec<Requirement>,
|
||||||
pub requires_python: Option<VersionSpecifiers>,
|
pub requires_python: Option<VersionSpecifiers>,
|
||||||
pub provides_extras: Vec<ExtraName>,
|
pub provides_extras: Vec<ExtraName>,
|
||||||
pub dependency_groups: BTreeMap<GroupName, Vec<uv_pypi_types::Requirement>>,
|
pub dependency_groups: BTreeMap<GroupName, Vec<Requirement>>,
|
||||||
pub dynamic: bool,
|
pub dynamic: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ impl Metadata {
|
||||||
requires_dist: metadata
|
requires_dist: metadata
|
||||||
.requires_dist
|
.requires_dist
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(uv_pypi_types::Requirement::from)
|
.map(Requirement::from)
|
||||||
.collect(),
|
.collect(),
|
||||||
requires_python: metadata.requires_python,
|
requires_python: metadata.requires_python,
|
||||||
provides_extras: metadata.provides_extras,
|
provides_extras: metadata.provides_extras,
|
||||||
|
|
|
@ -5,7 +5,7 @@ use std::slice;
|
||||||
use rustc_hash::FxHashSet;
|
use rustc_hash::FxHashSet;
|
||||||
|
|
||||||
use uv_configuration::SourceStrategy;
|
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_normalize::{ExtraName, GroupName, PackageName, DEV_DEPENDENCIES};
|
||||||
use uv_pep508::MarkerTree;
|
use uv_pep508::MarkerTree;
|
||||||
use uv_workspace::dependency_groups::FlatDependencyGroups;
|
use uv_workspace::dependency_groups::FlatDependencyGroups;
|
||||||
|
@ -18,9 +18,9 @@ use crate::Metadata;
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct RequiresDist {
|
pub struct RequiresDist {
|
||||||
pub name: PackageName,
|
pub name: PackageName,
|
||||||
pub requires_dist: Vec<uv_pypi_types::Requirement>,
|
pub requires_dist: Vec<Requirement>,
|
||||||
pub provides_extras: Vec<ExtraName>,
|
pub provides_extras: Vec<ExtraName>,
|
||||||
pub dependency_groups: BTreeMap<GroupName, Vec<uv_pypi_types::Requirement>>,
|
pub dependency_groups: BTreeMap<GroupName, Vec<Requirement>>,
|
||||||
pub dynamic: bool,
|
pub dynamic: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ impl RequiresDist {
|
||||||
requires_dist: metadata
|
requires_dist: metadata
|
||||||
.requires_dist
|
.requires_dist
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(uv_pypi_types::Requirement::from)
|
.map(Requirement::from)
|
||||||
.collect(),
|
.collect(),
|
||||||
provides_extras: metadata.provides_extras,
|
provides_extras: metadata.provides_extras,
|
||||||
dependency_groups: BTreeMap::default(),
|
dependency_groups: BTreeMap::default(),
|
||||||
|
@ -186,15 +186,11 @@ impl RequiresDist {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>(),
|
.collect::<Result<Vec<_>, _>>(),
|
||||||
SourceStrategy::Disabled => Ok(requirements
|
SourceStrategy::Disabled => {
|
||||||
.into_iter()
|
Ok(requirements.into_iter().map(Requirement::from).collect())
|
||||||
.map(uv_pypi_types::Requirement::from)
|
}
|
||||||
.collect()),
|
|
||||||
}?;
|
}?;
|
||||||
Ok::<(GroupName, Vec<uv_pypi_types::Requirement>), MetadataError>((
|
Ok::<(GroupName, Vec<Requirement>), MetadataError>((name, requirements))
|
||||||
name,
|
|
||||||
requirements,
|
|
||||||
))
|
|
||||||
})
|
})
|
||||||
.collect::<Result<BTreeMap<_, _>, _>>()?;
|
.collect::<Result<BTreeMap<_, _>, _>>()?;
|
||||||
|
|
||||||
|
@ -227,10 +223,7 @@ impl RequiresDist {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>()?,
|
.collect::<Result<Vec<_>, _>>()?,
|
||||||
SourceStrategy::Disabled => requires_dist
|
SourceStrategy::Disabled => requires_dist.into_iter().map(Requirement::from).collect(),
|
||||||
.into_iter()
|
|
||||||
.map(uv_pypi_types::Requirement::from)
|
|
||||||
.collect(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
|
@ -360,14 +353,11 @@ impl From<Metadata> for RequiresDist {
|
||||||
/// The [`FlatRequiresDist`] struct is used to flatten out the recursive dependencies, i.e., convert
|
/// The [`FlatRequiresDist`] struct is used to flatten out the recursive dependencies, i.e., convert
|
||||||
/// from the former to the latter.
|
/// from the former to the latter.
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||||
pub struct FlatRequiresDist(Vec<uv_pypi_types::Requirement>);
|
pub struct FlatRequiresDist(Vec<Requirement>);
|
||||||
|
|
||||||
impl FlatRequiresDist {
|
impl FlatRequiresDist {
|
||||||
/// Flatten a set of requirements, resolving any self-references.
|
/// Flatten a set of requirements, resolving any self-references.
|
||||||
pub fn from_requirements(
|
pub fn from_requirements(requirements: Vec<Requirement>, name: &PackageName) -> Self {
|
||||||
requirements: Vec<uv_pypi_types::Requirement>,
|
|
||||||
name: &PackageName,
|
|
||||||
) -> Self {
|
|
||||||
// If there are no self-references, we can return early.
|
// If there are no self-references, we can return early.
|
||||||
if requirements.iter().all(|req| req.name != *name) {
|
if requirements.iter().all(|req| req.name != *name) {
|
||||||
return Self(requirements);
|
return Self(requirements);
|
||||||
|
@ -400,7 +390,7 @@ impl FlatRequiresDist {
|
||||||
let requirement = {
|
let requirement = {
|
||||||
let mut marker = marker;
|
let mut marker = marker;
|
||||||
marker.and(requirement.marker);
|
marker.and(requirement.marker);
|
||||||
uv_pypi_types::Requirement {
|
Requirement {
|
||||||
name: requirement.name.clone(),
|
name: requirement.name.clone(),
|
||||||
extras: requirement.extras.clone(),
|
extras: requirement.extras.clone(),
|
||||||
groups: requirement.groups.clone(),
|
groups: requirement.groups.clone(),
|
||||||
|
@ -434,7 +424,7 @@ impl FlatRequiresDist {
|
||||||
for req in &requirements {
|
for req in &requirements {
|
||||||
if req.name == *name {
|
if req.name == *name {
|
||||||
if !req.source.is_empty() {
|
if !req.source.is_empty() {
|
||||||
flattened.push(uv_pypi_types::Requirement {
|
flattened.push(Requirement {
|
||||||
name: req.name.clone(),
|
name: req.name.clone(),
|
||||||
extras: vec![],
|
extras: vec![],
|
||||||
groups: req.groups.clone(),
|
groups: req.groups.clone(),
|
||||||
|
@ -450,14 +440,14 @@ impl FlatRequiresDist {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Consume the [`FlatRequiresDist`] and return the inner vector.
|
/// Consume the [`FlatRequiresDist`] and return the inner vector.
|
||||||
pub fn into_inner(self) -> Vec<uv_pypi_types::Requirement> {
|
pub fn into_inner(self) -> Vec<Requirement> {
|
||||||
self.0
|
self.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IntoIterator for FlatRequiresDist {
|
impl IntoIterator for FlatRequiresDist {
|
||||||
type Item = uv_pypi_types::Requirement;
|
type Item = Requirement;
|
||||||
type IntoIter = std::vec::IntoIter<uv_pypi_types::Requirement>;
|
type IntoIter = std::vec::IntoIter<Requirement>;
|
||||||
|
|
||||||
fn into_iter(self) -> Self::IntoIter {
|
fn into_iter(self) -> Self::IntoIter {
|
||||||
self.0.into_iter()
|
self.0.into_iter()
|
||||||
|
|
|
@ -10,11 +10,11 @@ use uv_distribution::{
|
||||||
};
|
};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
BuiltDist, CachedDirectUrlDist, CachedDist, Dist, Error, Hashed, IndexLocations, InstalledDist,
|
BuiltDist, CachedDirectUrlDist, CachedDist, Dist, Error, Hashed, IndexLocations, InstalledDist,
|
||||||
Name, Resolution, ResolvedDist, SourceDist,
|
Name, RequirementSource, Resolution, ResolvedDist, SourceDist,
|
||||||
};
|
};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_platform_tags::Tags;
|
use uv_platform_tags::Tags;
|
||||||
use uv_pypi_types::{RequirementSource, VerbatimParsedUrl};
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
use uv_python::PythonEnvironment;
|
use uv_python::PythonEnvironment;
|
||||||
use uv_types::HashStrategy;
|
use uv_types::HashStrategy;
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,9 @@ use url::Url;
|
||||||
|
|
||||||
use uv_cache_info::CacheInfo;
|
use uv_cache_info::CacheInfo;
|
||||||
use uv_cache_key::{CanonicalUrl, RepositoryUrl};
|
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_git_types::GitOid;
|
||||||
use uv_pypi_types::{DirInfo, DirectUrl, RequirementSource, VcsInfo, VcsKind};
|
use uv_pypi_types::{DirInfo, DirectUrl, VcsInfo, VcsKind};
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone)]
|
#[derive(Debug, Copy, Clone)]
|
||||||
pub(crate) enum RequirementSatisfaction {
|
pub(crate) enum RequirementSatisfaction {
|
||||||
|
|
|
@ -9,14 +9,14 @@ use rustc_hash::{FxBuildHasher, FxHashMap, FxHashSet};
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
Diagnostic, InstalledDist, Name, NameRequirementSpecification, UnresolvedRequirement,
|
Diagnostic, InstalledDist, Name, NameRequirementSpecification, Requirement,
|
||||||
UnresolvedRequirementSpecification,
|
UnresolvedRequirement, UnresolvedRequirementSpecification,
|
||||||
};
|
};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep440::{Version, VersionSpecifiers};
|
use uv_pep440::{Version, VersionSpecifiers};
|
||||||
use uv_pep508::VersionOrUrl;
|
use uv_pep508::VersionOrUrl;
|
||||||
use uv_pypi_types::{Requirement, ResolverMarkerEnvironment, VerbatimParsedUrl};
|
use uv_pypi_types::{ResolverMarkerEnvironment, VerbatimParsedUrl};
|
||||||
use uv_python::{Interpreter, PythonEnvironment};
|
use uv_python::{Interpreter, PythonEnvironment};
|
||||||
use uv_types::InstalledPackagesProvider;
|
use uv_types::InstalledPackagesProvider;
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
|
@ -17,7 +17,6 @@ workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
uv-distribution-filename = { workspace = true }
|
uv-distribution-filename = { workspace = true }
|
||||||
uv-fs = { workspace = true, features = ["serde"] }
|
|
||||||
uv-git-types = { workspace = true }
|
uv-git-types = { workspace = true }
|
||||||
uv-normalize = { workspace = true }
|
uv-normalize = { workspace = true }
|
||||||
uv-pep440 = { workspace = true }
|
uv-pep440 = { workspace = true }
|
||||||
|
@ -37,7 +36,6 @@ schemars = { workspace = true, optional = true }
|
||||||
serde = { workspace = true }
|
serde = { workspace = true }
|
||||||
serde-untagged = { workspace = true }
|
serde-untagged = { workspace = true }
|
||||||
thiserror = { workspace = true }
|
thiserror = { workspace = true }
|
||||||
toml = { workspace = true }
|
|
||||||
toml_edit = { workspace = true }
|
toml_edit = { workspace = true }
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
url = { workspace = true }
|
url = { workspace = true }
|
||||||
|
|
|
@ -7,7 +7,6 @@ pub use lenient_requirement::*;
|
||||||
pub use marker_environment::*;
|
pub use marker_environment::*;
|
||||||
pub use metadata::*;
|
pub use metadata::*;
|
||||||
pub use parsed_url::*;
|
pub use parsed_url::*;
|
||||||
pub use requirement::*;
|
|
||||||
pub use scheme::*;
|
pub use scheme::*;
|
||||||
pub use simple_json::*;
|
pub use simple_json::*;
|
||||||
pub use supported_environments::*;
|
pub use supported_environments::*;
|
||||||
|
@ -21,7 +20,6 @@ mod lenient_requirement;
|
||||||
mod marker_environment;
|
mod marker_environment;
|
||||||
mod metadata;
|
mod metadata;
|
||||||
mod parsed_url;
|
mod parsed_url;
|
||||||
mod requirement;
|
|
||||||
mod scheme;
|
mod scheme;
|
||||||
mod simple_json;
|
mod simple_json;
|
||||||
mod supported_environments;
|
mod supported_environments;
|
||||||
|
|
|
@ -48,10 +48,12 @@ use url::Url;
|
||||||
use uv_client::BaseClient;
|
use uv_client::BaseClient;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{NoBinary, NoBuild, PackageNameSpecifier};
|
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_fs::Simplified;
|
||||||
use uv_pep508::{expand_env_vars, Pep508Error, RequirementOrigin, VerbatimUrl};
|
use uv_pep508::{expand_env_vars, Pep508Error, RequirementOrigin, VerbatimUrl};
|
||||||
use uv_pypi_types::{Requirement, VerbatimParsedUrl};
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
|
|
||||||
use crate::requirement::EditableError;
|
use crate::requirement::EditableError;
|
||||||
pub use crate::requirement::RequirementsTxtRequirement;
|
pub use crate::requirement::RequirementsTxtRequirement;
|
||||||
|
|
|
@ -4,7 +4,7 @@ use futures::{stream::FuturesOrdered, TryStreamExt};
|
||||||
|
|
||||||
use uv_distribution::{DistributionDatabase, Reporter};
|
use uv_distribution::{DistributionDatabase, Reporter};
|
||||||
use uv_distribution_types::DistributionMetadata;
|
use uv_distribution_types::DistributionMetadata;
|
||||||
use uv_pypi_types::Requirement;
|
use uv_distribution_types::Requirement;
|
||||||
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
||||||
use uv_types::{BuildContext, HashStrategy};
|
use uv_types::{BuildContext, HashStrategy};
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,9 @@ pub use crate::sources::*;
|
||||||
pub use crate::specification::*;
|
pub use crate::specification::*;
|
||||||
pub use crate::unnamed::*;
|
pub use crate::unnamed::*;
|
||||||
|
|
||||||
use uv_distribution_types::{Dist, DistErrorKind, GitSourceDist, SourceDist};
|
use uv_distribution_types::{
|
||||||
use uv_pypi_types::{Requirement, RequirementSource};
|
Dist, DistErrorKind, GitSourceDist, Requirement, RequirementSource, SourceDist,
|
||||||
|
};
|
||||||
|
|
||||||
mod extras;
|
mod extras;
|
||||||
mod lookahead;
|
mod lookahead;
|
||||||
|
|
|
@ -7,8 +7,7 @@ use tracing::trace;
|
||||||
|
|
||||||
use uv_configuration::{Constraints, Overrides};
|
use uv_configuration::{Constraints, Overrides};
|
||||||
use uv_distribution::{DistributionDatabase, Reporter};
|
use uv_distribution::{DistributionDatabase, Reporter};
|
||||||
use uv_distribution_types::{Dist, DistributionMetadata};
|
use uv_distribution_types::{Dist, DistributionMetadata, Requirement, RequirementSource};
|
||||||
use uv_pypi_types::{Requirement, RequirementSource};
|
|
||||||
use uv_resolver::{InMemoryIndex, MetadataResponse, ResolverEnvironment};
|
use uv_resolver::{InMemoryIndex, MetadataResponse, ResolverEnvironment};
|
||||||
use uv_types::{BuildContext, HashStrategy, RequestedRequirements};
|
use uv_types::{BuildContext, HashStrategy, RequestedRequirements};
|
||||||
|
|
||||||
|
|
|
@ -9,13 +9,13 @@ use url::Url;
|
||||||
|
|
||||||
use uv_configuration::{DependencyGroups, ExtrasSpecification};
|
use uv_configuration::{DependencyGroups, ExtrasSpecification};
|
||||||
use uv_distribution::{DistributionDatabase, FlatRequiresDist, Reporter, RequiresDist};
|
use uv_distribution::{DistributionDatabase, FlatRequiresDist, Reporter, RequiresDist};
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
BuildableSource, DirectorySourceUrl, HashGeneration, HashPolicy, SourceUrl, VersionId,
|
BuildableSource, DirectorySourceUrl, HashGeneration, HashPolicy, SourceUrl, VersionId,
|
||||||
};
|
};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_normalize::{ExtraName, PackageName};
|
use uv_normalize::{ExtraName, PackageName};
|
||||||
use uv_pep508::RequirementOrigin;
|
use uv_pep508::RequirementOrigin;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
||||||
use uv_types::{BuildContext, HashStrategy};
|
use uv_types::{BuildContext, HashStrategy};
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ use tracing::instrument;
|
||||||
use uv_cache_key::CanonicalUrl;
|
use uv_cache_key::CanonicalUrl;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{DependencyGroups, NoBinary, NoBuild};
|
use uv_configuration::{DependencyGroups, NoBinary, NoBuild};
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
IndexUrl, NameRequirementSpecification, UnresolvedRequirement,
|
IndexUrl, NameRequirementSpecification, UnresolvedRequirement,
|
||||||
UnresolvedRequirementSpecification,
|
UnresolvedRequirementSpecification,
|
||||||
|
@ -43,7 +44,6 @@ use uv_distribution_types::{
|
||||||
use uv_fs::{Simplified, CWD};
|
use uv_fs::{Simplified, CWD};
|
||||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep508::{MarkerTree, UnnamedRequirement, UnnamedRequirementUrl};
|
use uv_pep508::{MarkerTree, UnnamedRequirement, UnnamedRequirementUrl};
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_pypi_types::VerbatimParsedUrl;
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
use uv_requirements_txt::{RequirementsTxt, RequirementsTxtRequirement};
|
use uv_requirements_txt::{RequirementsTxt, RequirementsTxtRequirement};
|
||||||
use uv_warnings::warn_user;
|
use uv_warnings::warn_user;
|
||||||
|
|
|
@ -9,20 +9,21 @@ use serde::Deserialize;
|
||||||
use tracing::debug;
|
use tracing::debug;
|
||||||
use url::Host;
|
use url::Host;
|
||||||
|
|
||||||
use crate::Error;
|
|
||||||
use uv_distribution::{DistributionDatabase, Reporter};
|
use uv_distribution::{DistributionDatabase, Reporter};
|
||||||
use uv_distribution_filename::{DistExtension, SourceDistFilename, WheelFilename};
|
use uv_distribution_filename::{DistExtension, SourceDistFilename, WheelFilename};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
BuildableSource, DirectSourceUrl, DirectorySourceUrl, GitSourceUrl, PathSourceUrl,
|
BuildableSource, DirectSourceUrl, DirectorySourceUrl, GitSourceUrl, PathSourceUrl,
|
||||||
RemoteSource, SourceUrl, VersionId,
|
RemoteSource, Requirement, SourceUrl, VersionId,
|
||||||
};
|
};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep508::{UnnamedRequirement, VersionOrUrl};
|
use uv_pep508::{UnnamedRequirement, VersionOrUrl};
|
||||||
use uv_pypi_types::{Metadata10, Requirement};
|
use uv_pypi_types::Metadata10;
|
||||||
use uv_pypi_types::{ParsedUrl, VerbatimParsedUrl};
|
use uv_pypi_types::{ParsedUrl, VerbatimParsedUrl};
|
||||||
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
use uv_resolver::{InMemoryIndex, MetadataResponse};
|
||||||
use uv_types::{BuildContext, HashStrategy};
|
use uv_types::{BuildContext, HashStrategy};
|
||||||
|
|
||||||
|
use crate::Error;
|
||||||
|
|
||||||
/// Like [`RequirementsSpecification`], but with concrete names for all requirements.
|
/// Like [`RequirementsSpecification`], but with concrete names for all requirements.
|
||||||
pub struct NamedRequirementsResolver<'a, Context: BuildContext> {
|
pub struct NamedRequirementsResolver<'a, Context: BuildContext> {
|
||||||
/// Whether to check hashes for distributions.
|
/// Whether to check hashes for distributions.
|
||||||
|
|
|
@ -25,10 +25,11 @@ use uv_distribution_filename::{
|
||||||
BuildTag, DistExtension, ExtensionError, SourceDistExtension, WheelFilename,
|
BuildTag, DistExtension, ExtensionError, SourceDistExtension, WheelFilename,
|
||||||
};
|
};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
BuiltDist, DependencyMetadata, DirectUrlBuiltDist, DirectUrlSourceDist, DirectorySourceDist,
|
redact_credentials, BuiltDist, DependencyMetadata, DirectUrlBuiltDist, DirectUrlSourceDist,
|
||||||
Dist, DistributionMetadata, FileLocation, GitSourceDist, IndexLocations, IndexUrl, Name,
|
DirectorySourceDist, Dist, DistributionMetadata, FileLocation, GitSourceDist, IndexLocations,
|
||||||
PathBuiltDist, PathSourceDist, RegistryBuiltDist, RegistryBuiltWheel, RegistrySourceDist,
|
IndexUrl, Name, PathBuiltDist, PathSourceDist, RegistryBuiltDist, RegistryBuiltWheel,
|
||||||
RemoteSource, ResolvedDist, StaticMetadata, ToUrlError, UrlString,
|
RegistrySourceDist, RemoteSource, Requirement, RequirementSource, ResolvedDist, StaticMetadata,
|
||||||
|
ToUrlError, UrlString,
|
||||||
};
|
};
|
||||||
use uv_fs::{relative_to, PortablePath, PortablePathBuf};
|
use uv_fs::{relative_to, PortablePath, PortablePathBuf};
|
||||||
use uv_git::{RepositoryReference, ResolvedRepositoryReference};
|
use uv_git::{RepositoryReference, ResolvedRepositoryReference};
|
||||||
|
@ -40,8 +41,7 @@ use uv_platform_tags::{
|
||||||
AbiTag, IncompatibleTag, LanguageTag, PlatformTag, TagCompatibility, TagPriority, Tags,
|
AbiTag, IncompatibleTag, LanguageTag, PlatformTag, TagCompatibility, TagPriority, Tags,
|
||||||
};
|
};
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{
|
||||||
redact_credentials, ConflictPackage, Conflicts, HashDigest, HashDigests, ParsedArchiveUrl,
|
ConflictPackage, Conflicts, HashDigest, HashDigests, ParsedArchiveUrl, ParsedGitUrl,
|
||||||
ParsedGitUrl, Requirement, RequirementSource,
|
|
||||||
};
|
};
|
||||||
use uv_small_str::SmallString;
|
use uv_small_str::SmallString;
|
||||||
use uv_types::{BuildContext, HashStrategy};
|
use uv_types::{BuildContext, HashStrategy};
|
||||||
|
|
|
@ -4,8 +4,8 @@ use std::collections::BTreeSet;
|
||||||
use either::Either;
|
use either::Either;
|
||||||
|
|
||||||
use uv_configuration::{Constraints, Overrides};
|
use uv_configuration::{Constraints, Overrides};
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_types::RequestedRequirements;
|
use uv_types::RequestedRequirements;
|
||||||
|
|
||||||
use crate::preferences::Preferences;
|
use crate::preferences::Preferences;
|
||||||
|
|
|
@ -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::resolver::ForkSet;
|
||||||
use crate::{DependencyMode, Manifest, ResolverEnvironment};
|
use crate::{DependencyMode, Manifest, ResolverEnvironment};
|
||||||
|
|
||||||
use uv_normalize::PackageName;
|
|
||||||
use uv_pep440::Operator;
|
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||||
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
|
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
|
||||||
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
|
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
|
||||||
|
|
|
@ -4,11 +4,12 @@ use std::iter;
|
||||||
use either::Either;
|
use either::Either;
|
||||||
use pubgrub::Ranges;
|
use pubgrub::Ranges;
|
||||||
|
|
||||||
|
use uv_distribution_types::{Requirement, RequirementSource};
|
||||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep440::{Version, VersionSpecifiers};
|
use uv_pep440::{Version, VersionSpecifiers};
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{
|
||||||
Conflicts, ParsedArchiveUrl, ParsedDirectoryUrl, ParsedGitUrl, ParsedPathUrl, ParsedUrl,
|
Conflicts, ParsedArchiveUrl, ParsedDirectoryUrl, ParsedGitUrl, ParsedPathUrl, ParsedUrl,
|
||||||
Requirement, RequirementSource, VerbatimParsedUrl,
|
VerbatimParsedUrl,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::pubgrub::{PubGrubPackage, PubGrubPackageInner};
|
use crate::pubgrub::{PubGrubPackage, PubGrubPackageInner};
|
||||||
|
|
|
@ -12,16 +12,14 @@ use rustc_hash::{FxBuildHasher, FxHashMap, FxHashSet};
|
||||||
use uv_configuration::{Constraints, Overrides};
|
use uv_configuration::{Constraints, Overrides};
|
||||||
use uv_distribution::Metadata;
|
use uv_distribution::Metadata;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
Dist, DistributionMetadata, Edge, IndexUrl, Name, Node, ResolutionDiagnostic, ResolvedDist,
|
Dist, DistributionMetadata, Edge, IndexUrl, Name, Node, Requirement, ResolutionDiagnostic,
|
||||||
VersionId, VersionOrUrlRef,
|
ResolvedDist, VersionId, VersionOrUrlRef,
|
||||||
};
|
};
|
||||||
use uv_git::GitResolver;
|
use uv_git::GitResolver;
|
||||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep440::{Version, VersionSpecifier};
|
use uv_pep440::{Version, VersionSpecifier};
|
||||||
use uv_pep508::{MarkerEnvironment, MarkerTree, MarkerTreeKind};
|
use uv_pep508::{MarkerEnvironment, MarkerTree, MarkerTreeKind};
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{Conflicts, HashDigests, ParsedUrlError, VerbatimParsedUrl, Yanked};
|
||||||
Conflicts, HashDigests, ParsedUrlError, Requirement, VerbatimParsedUrl, Yanked,
|
|
||||||
};
|
|
||||||
|
|
||||||
use crate::graph_ops::{marker_reachability, simplify_conflict_markers};
|
use crate::graph_ops::{marker_reachability, simplify_conflict_markers};
|
||||||
use crate::pins::FilePins;
|
use crate::pins::FilePins;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use rustc_hash::FxHashMap;
|
use rustc_hash::FxHashMap;
|
||||||
|
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_pep508::{MarkerTree, PackageName};
|
use uv_pep508::{MarkerTree, PackageName};
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
|
|
||||||
use crate::ResolverEnvironment;
|
use crate::ResolverEnvironment;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use uv_distribution_types::IndexUrl;
|
use uv_distribution_types::{IndexUrl, RequirementSource};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep508::VerbatimUrl;
|
use uv_pep508::VerbatimUrl;
|
||||||
use uv_pypi_types::{ConflictItem, RequirementSource};
|
use uv_pypi_types::ConflictItem;
|
||||||
|
|
||||||
use crate::resolver::ForkMap;
|
use crate::resolver::ForkMap;
|
||||||
use crate::{DependencyMode, Manifest, ResolverEnvironment};
|
use crate::{DependencyMode, Manifest, ResolverEnvironment};
|
||||||
|
|
|
@ -25,15 +25,15 @@ use uv_distribution::DistributionDatabase;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
BuiltDist, CompatibleDist, DerivationChain, Dist, DistErrorKind, DistributionMetadata,
|
BuiltDist, CompatibleDist, DerivationChain, Dist, DistErrorKind, DistributionMetadata,
|
||||||
IncompatibleDist, IncompatibleSource, IncompatibleWheel, IndexCapabilities, IndexLocations,
|
IncompatibleDist, IncompatibleSource, IncompatibleWheel, IndexCapabilities, IndexLocations,
|
||||||
IndexUrl, InstalledDist, PythonRequirementKind, RemoteSource, ResolvedDist, ResolvedDistRef,
|
IndexUrl, InstalledDist, PythonRequirementKind, RemoteSource, Requirement, ResolvedDist,
|
||||||
SourceDist, VersionOrUrlRef,
|
ResolvedDistRef, SourceDist, VersionOrUrlRef,
|
||||||
};
|
};
|
||||||
use uv_git::GitResolver;
|
use uv_git::GitResolver;
|
||||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||||
use uv_pep440::{release_specifiers_to_ranges, Version, VersionSpecifiers, MIN_VERSION};
|
use uv_pep440::{release_specifiers_to_ranges, Version, VersionSpecifiers, MIN_VERSION};
|
||||||
use uv_pep508::{MarkerExpression, MarkerOperator, MarkerTree, MarkerValueString};
|
use uv_pep508::{MarkerExpression, MarkerOperator, MarkerTree, MarkerValueString};
|
||||||
use uv_platform_tags::Tags;
|
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_types::{BuildContext, HashStrategy, InstalledPackagesProvider};
|
||||||
use uv_warnings::warn_user_once;
|
use uv_warnings::warn_user_once;
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@ use std::sync::Arc;
|
||||||
|
|
||||||
use rustc_hash::{FxHashMap, FxHashSet};
|
use rustc_hash::{FxHashMap, FxHashSet};
|
||||||
|
|
||||||
|
use uv_distribution_types::RequirementSource;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep440::Version;
|
use uv_pep440::Version;
|
||||||
use uv_pypi_types::RequirementSource;
|
|
||||||
|
|
||||||
use crate::{DependencyMode, Manifest, ResolverEnvironment};
|
use crate::{DependencyMode, Manifest, ResolverEnvironment};
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ workspace = true
|
||||||
[dependencies]
|
[dependencies]
|
||||||
uv-cache = { workspace = true }
|
uv-cache = { workspace = true }
|
||||||
uv-dirs = { workspace = true }
|
uv-dirs = { workspace = true }
|
||||||
|
uv-distribution-types = { workspace = true }
|
||||||
uv-fs = { workspace = true }
|
uv-fs = { workspace = true }
|
||||||
uv-install-wheel = { workspace = true }
|
uv-install-wheel = { workspace = true }
|
||||||
uv-installer = { workspace = true }
|
uv-installer = { workspace = true }
|
||||||
|
|
|
@ -2,13 +2,11 @@ use std::fmt::{self, Display, Formatter};
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use toml_edit::value;
|
use toml_edit::{value, Array, Item, Table, Value};
|
||||||
use toml_edit::Table;
|
|
||||||
use toml_edit::Value;
|
|
||||||
use toml_edit::{Array, Item};
|
|
||||||
|
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_fs::{PortablePath, Simplified};
|
use uv_fs::{PortablePath, Simplified};
|
||||||
use uv_pypi_types::{Requirement, VerbatimParsedUrl};
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
use uv_settings::ToolOptions;
|
use uv_settings::ToolOptions;
|
||||||
|
|
||||||
/// A tool entry.
|
/// A tool entry.
|
||||||
|
|
|
@ -6,14 +6,12 @@ use url::Url;
|
||||||
|
|
||||||
use uv_configuration::HashCheckingMode;
|
use uv_configuration::HashCheckingMode;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
DistributionMetadata, HashGeneration, HashPolicy, Name, Resolution, UnresolvedRequirement,
|
DistributionMetadata, HashGeneration, HashPolicy, Name, Requirement, RequirementSource,
|
||||||
VersionId,
|
Resolution, UnresolvedRequirement, VersionId,
|
||||||
};
|
};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep440::Version;
|
use uv_pep440::Version;
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{HashDigest, HashDigests, HashError, ResolverMarkerEnvironment};
|
||||||
HashDigest, HashDigests, HashError, Requirement, RequirementSource, ResolverMarkerEnvironment,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone)]
|
#[derive(Debug, Default, Clone)]
|
||||||
pub enum HashStrategy {
|
pub enum HashStrategy {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_normalize::ExtraName;
|
use uv_normalize::ExtraName;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
|
|
||||||
/// A set of requirements as requested by a parent requirement.
|
/// A set of requirements as requested by a parent requirement.
|
||||||
///
|
///
|
||||||
|
|
|
@ -11,11 +11,10 @@ use uv_configuration::{BuildKind, BuildOptions, BuildOutput, ConfigSettings, Sou
|
||||||
use uv_distribution_filename::DistFilename;
|
use uv_distribution_filename::DistFilename;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
CachedDist, DependencyMetadata, DistributionId, IndexCapabilities, IndexLocations,
|
CachedDist, DependencyMetadata, DistributionId, IndexCapabilities, IndexLocations,
|
||||||
InstalledDist, IsBuildBackendError, Resolution, SourceDist,
|
InstalledDist, IsBuildBackendError, Requirement, Resolution, SourceDist,
|
||||||
};
|
};
|
||||||
use uv_git::GitResolver;
|
use uv_git::GitResolver;
|
||||||
use uv_pep508::PackageName;
|
use uv_pep508::PackageName;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_python::{Interpreter, PythonEnvironment};
|
use uv_python::{Interpreter, PythonEnvironment};
|
||||||
use uv_workspace::WorkspaceCache;
|
use uv_workspace::WorkspaceCache;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ use serde::{de::IntoDeserializer, de::SeqAccess, Deserialize, Deserializer, Seri
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use uv_distribution_types::{Index, IndexName};
|
use uv_distribution_types::{Index, IndexName, RequirementSource};
|
||||||
use uv_fs::{relative_to, PortablePathBuf};
|
use uv_fs::{relative_to, PortablePathBuf};
|
||||||
use uv_git_types::GitReference;
|
use uv_git_types::GitReference;
|
||||||
use uv_macros::OptionsMetadata;
|
use uv_macros::OptionsMetadata;
|
||||||
|
@ -27,8 +27,7 @@ use uv_normalize::{DefaultGroups, ExtraName, GroupName, PackageName};
|
||||||
use uv_pep440::{Version, VersionSpecifiers};
|
use uv_pep440::{Version, VersionSpecifiers};
|
||||||
use uv_pep508::MarkerTree;
|
use uv_pep508::MarkerTree;
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{
|
||||||
Conflicts, DependencyGroups, RequirementSource, SchemaConflicts, SupportedEnvironments,
|
Conflicts, DependencyGroups, SchemaConflicts, SupportedEnvironments, VerbatimParsedUrl,
|
||||||
VerbatimParsedUrl,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Error, Debug)]
|
#[derive(Error, Debug)]
|
||||||
|
|
|
@ -8,14 +8,12 @@ use glob::{glob, GlobError, PatternError};
|
||||||
use rustc_hash::{FxHashMap, FxHashSet};
|
use rustc_hash::{FxHashMap, FxHashSet};
|
||||||
use tracing::{debug, trace, warn};
|
use tracing::{debug, trace, warn};
|
||||||
|
|
||||||
use uv_distribution_types::Index;
|
use uv_distribution_types::{Index, Requirement, RequirementSource};
|
||||||
use uv_fs::{Simplified, CWD};
|
use uv_fs::{Simplified, CWD};
|
||||||
use uv_normalize::{GroupName, PackageName, DEV_DEPENDENCIES};
|
use uv_normalize::{GroupName, PackageName, DEV_DEPENDENCIES};
|
||||||
use uv_pep440::VersionSpecifiers;
|
use uv_pep440::VersionSpecifiers;
|
||||||
use uv_pep508::{MarkerTree, VerbatimUrl};
|
use uv_pep508::{MarkerTree, VerbatimUrl};
|
||||||
use uv_pypi_types::{
|
use uv_pypi_types::{Conflicts, SupportedEnvironments, VerbatimParsedUrl};
|
||||||
Conflicts, Requirement, RequirementSource, SupportedEnvironments, VerbatimParsedUrl,
|
|
||||||
};
|
|
||||||
use uv_static::EnvVars;
|
use uv_static::EnvVars;
|
||||||
use uv_warnings::warn_user_once;
|
use uv_warnings::warn_user_once;
|
||||||
|
|
||||||
|
|
|
@ -20,12 +20,12 @@ use uv_configuration::{KeyringProviderType, TargetTriple};
|
||||||
use uv_dispatch::{BuildDispatch, SharedState};
|
use uv_dispatch::{BuildDispatch, SharedState};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
DependencyMetadata, HashGeneration, Index, IndexLocations, NameRequirementSpecification,
|
DependencyMetadata, HashGeneration, Index, IndexLocations, NameRequirementSpecification,
|
||||||
Origin, UnresolvedRequirementSpecification, Verbatim,
|
Origin, Requirement, UnresolvedRequirementSpecification, Verbatim,
|
||||||
};
|
};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_install_wheel::LinkMode;
|
use uv_install_wheel::LinkMode;
|
||||||
use uv_normalize::{GroupName, PackageName};
|
use uv_normalize::{GroupName, PackageName};
|
||||||
use uv_pypi_types::{Conflicts, Requirement, SupportedEnvironments};
|
use uv_pypi_types::{Conflicts, SupportedEnvironments};
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, PythonEnvironment, PythonInstallation, PythonPreference, PythonRequest,
|
EnvironmentPreference, PythonEnvironment, PythonInstallation, PythonPreference, PythonRequest,
|
||||||
PythonVersion, VersionRequest,
|
PythonVersion, VersionRequest,
|
||||||
|
|
|
@ -16,15 +16,15 @@ use uv_configuration::{
|
||||||
use uv_configuration::{KeyringProviderType, TargetTriple};
|
use uv_configuration::{KeyringProviderType, TargetTriple};
|
||||||
use uv_dispatch::{BuildDispatch, SharedState};
|
use uv_dispatch::{BuildDispatch, SharedState};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
DependencyMetadata, Index, IndexLocations, NameRequirementSpecification, Origin, Resolution,
|
DependencyMetadata, Index, IndexLocations, NameRequirementSpecification, Origin, Requirement,
|
||||||
UnresolvedRequirementSpecification,
|
Resolution, UnresolvedRequirementSpecification,
|
||||||
};
|
};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_install_wheel::LinkMode;
|
use uv_install_wheel::LinkMode;
|
||||||
use uv_installer::{SatisfiesResult, SitePackages};
|
use uv_installer::{SatisfiesResult, SitePackages};
|
||||||
use uv_normalize::GroupName;
|
use uv_normalize::GroupName;
|
||||||
use uv_pep508::PackageName;
|
use uv_pep508::PackageName;
|
||||||
use uv_pypi_types::{Conflicts, Requirement};
|
use uv_pypi_types::Conflicts;
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, Prefix, PythonEnvironment, PythonInstallation, PythonPreference,
|
EnvironmentPreference, Prefix, PythonEnvironment, PythonInstallation, PythonPreference,
|
||||||
PythonRequest, PythonVersion, Target,
|
PythonRequest, PythonVersion, Target,
|
||||||
|
|
|
@ -8,10 +8,10 @@ use tracing::debug;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{DryRun, KeyringProviderType};
|
use uv_configuration::{DryRun, KeyringProviderType};
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_distribution_types::{InstalledMetadata, Name, UnresolvedRequirement};
|
use uv_distribution_types::{InstalledMetadata, Name, UnresolvedRequirement};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_pep508::UnnamedRequirement;
|
use uv_pep508::UnnamedRequirement;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_pypi_types::VerbatimParsedUrl;
|
use uv_pypi_types::VerbatimParsedUrl;
|
||||||
use uv_python::EnvironmentPreference;
|
use uv_python::EnvironmentPreference;
|
||||||
use uv_python::PythonRequest;
|
use uv_python::PythonRequest;
|
||||||
|
|
|
@ -23,14 +23,15 @@ use uv_configuration::{
|
||||||
use uv_dispatch::BuildDispatch;
|
use uv_dispatch::BuildDispatch;
|
||||||
use uv_distribution::DistributionDatabase;
|
use uv_distribution::DistributionDatabase;
|
||||||
use uv_distribution_types::{
|
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_fs::Simplified;
|
||||||
use uv_git::GIT_STORE;
|
use uv_git::GIT_STORE;
|
||||||
use uv_git_types::GitReference;
|
use uv_git_types::GitReference;
|
||||||
use uv_normalize::{DefaultGroups, PackageName, DEV_DEPENDENCIES};
|
use uv_normalize::{DefaultGroups, PackageName, DEV_DEPENDENCIES};
|
||||||
use uv_pep508::{ExtraName, MarkerTree, Requirement, UnnamedRequirement, VersionOrUrl};
|
use uv_pep508::{ExtraName, MarkerTree, UnnamedRequirement, VersionOrUrl};
|
||||||
use uv_pypi_types::{redact_credentials, ParsedUrl, RequirementSource, VerbatimParsedUrl};
|
use uv_pypi_types::{ParsedUrl, VerbatimParsedUrl};
|
||||||
use uv_python::{Interpreter, PythonDownloads, PythonEnvironment, PythonPreference, PythonRequest};
|
use uv_python::{Interpreter, PythonDownloads, PythonEnvironment, PythonPreference, PythonRequest};
|
||||||
use uv_requirements::{NamedRequirementsResolver, RequirementsSource, RequirementsSpecification};
|
use uv_requirements::{NamedRequirementsResolver, RequirementsSource, RequirementsSpecification};
|
||||||
use uv_resolver::FlatIndex;
|
use uv_resolver::FlatIndex;
|
||||||
|
@ -928,7 +929,7 @@ fn augment_requirement(
|
||||||
) -> UnresolvedRequirement {
|
) -> UnresolvedRequirement {
|
||||||
match requirement {
|
match requirement {
|
||||||
UnresolvedRequirement::Named(mut requirement) => {
|
UnresolvedRequirement::Named(mut requirement) => {
|
||||||
UnresolvedRequirement::Named(uv_pypi_types::Requirement {
|
UnresolvedRequirement::Named(Requirement {
|
||||||
marker: marker
|
marker: marker
|
||||||
.map(|marker| {
|
.map(|marker| {
|
||||||
requirement.marker.and(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.
|
/// Resolves the source for a requirement and processes it into a PEP 508 compliant format.
|
||||||
fn resolve_requirement(
|
fn resolve_requirement(
|
||||||
requirement: uv_pypi_types::Requirement,
|
requirement: Requirement,
|
||||||
workspace: bool,
|
workspace: bool,
|
||||||
editable: Option<bool>,
|
editable: Option<bool>,
|
||||||
index: Option<IndexName>,
|
index: Option<IndexName>,
|
||||||
|
@ -1004,7 +1005,7 @@ fn resolve_requirement(
|
||||||
tag: Option<String>,
|
tag: Option<String>,
|
||||||
branch: Option<String>,
|
branch: Option<String>,
|
||||||
root: &Path,
|
root: &Path,
|
||||||
) -> Result<(Requirement, Option<Source>), anyhow::Error> {
|
) -> Result<(uv_pep508::Requirement, Option<Source>), anyhow::Error> {
|
||||||
let result = Source::from_requirement(
|
let result = Source::from_requirement(
|
||||||
&requirement.name,
|
&requirement.name,
|
||||||
requirement.source.clone(),
|
requirement.source.clone(),
|
||||||
|
@ -1197,7 +1198,7 @@ impl AddTargetSnapshot {
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
struct DependencyEdit {
|
struct DependencyEdit {
|
||||||
dependency_type: DependencyType,
|
dependency_type: DependencyType,
|
||||||
requirement: Requirement,
|
requirement: uv_pep508::Requirement,
|
||||||
source: Option<Source>,
|
source: Option<Source>,
|
||||||
edit: ArrayEdit,
|
edit: ArrayEdit,
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,12 @@ use uv_dispatch::BuildDispatch;
|
||||||
use uv_distribution::DistributionDatabase;
|
use uv_distribution::DistributionDatabase;
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
DependencyMetadata, HashGeneration, Index, IndexLocations, NameRequirementSpecification,
|
DependencyMetadata, HashGeneration, Index, IndexLocations, NameRequirementSpecification,
|
||||||
UnresolvedRequirementSpecification,
|
Requirement, UnresolvedRequirementSpecification,
|
||||||
};
|
};
|
||||||
use uv_git::ResolvedRepositoryReference;
|
use uv_git::ResolvedRepositoryReference;
|
||||||
use uv_normalize::{GroupName, PackageName};
|
use uv_normalize::{GroupName, PackageName};
|
||||||
use uv_pep440::Version;
|
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_python::{Interpreter, PythonDownloads, PythonEnvironment, PythonPreference, PythonRequest};
|
||||||
use uv_requirements::upgrade::{read_lock_requirements, LockedRequirements};
|
use uv_requirements::upgrade::{read_lock_requirements, LockedRequirements};
|
||||||
use uv_requirements::ExtrasResolver;
|
use uv_requirements::ExtrasResolver;
|
||||||
|
|
|
@ -5,10 +5,10 @@ use itertools::Either;
|
||||||
|
|
||||||
use uv_configuration::SourceStrategy;
|
use uv_configuration::SourceStrategy;
|
||||||
use uv_distribution::LoweredRequirement;
|
use uv_distribution::LoweredRequirement;
|
||||||
use uv_distribution_types::{Index, IndexLocations};
|
use uv_distribution_types::{Index, IndexLocations, Requirement};
|
||||||
use uv_normalize::{GroupName, PackageName};
|
use uv_normalize::{GroupName, PackageName};
|
||||||
use uv_pep508::RequirementOrigin;
|
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_resolver::{Lock, LockVersion, RequiresPython, VERSION};
|
||||||
use uv_scripts::Pep723Script;
|
use uv_scripts::Pep723Script;
|
||||||
use uv_workspace::dependency_groups::DependencyGroupError;
|
use uv_workspace::dependency_groups::DependencyGroupError;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use uv_configuration::{
|
||||||
use uv_dispatch::{BuildDispatch, SharedState};
|
use uv_dispatch::{BuildDispatch, SharedState};
|
||||||
use uv_distribution::{DistributionDatabase, LoweredRequirement};
|
use uv_distribution::{DistributionDatabase, LoweredRequirement};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
Index, Resolution, UnresolvedRequirement, UnresolvedRequirementSpecification,
|
Index, Requirement, Resolution, UnresolvedRequirement, UnresolvedRequirementSpecification,
|
||||||
};
|
};
|
||||||
use uv_fs::{LockedFile, Simplified, CWD};
|
use uv_fs::{LockedFile, Simplified, CWD};
|
||||||
use uv_git::ResolvedRepositoryReference;
|
use uv_git::ResolvedRepositoryReference;
|
||||||
|
@ -27,7 +27,7 @@ use uv_installer::{SatisfiesResult, SitePackages};
|
||||||
use uv_normalize::{DefaultGroups, ExtraName, GroupName, PackageName, DEV_DEPENDENCIES};
|
use uv_normalize::{DefaultGroups, ExtraName, GroupName, PackageName, DEV_DEPENDENCIES};
|
||||||
use uv_pep440::{Version, VersionSpecifiers};
|
use uv_pep440::{Version, VersionSpecifiers};
|
||||||
use uv_pep508::MarkerTreeContents;
|
use uv_pep508::MarkerTreeContents;
|
||||||
use uv_pypi_types::{ConflictPackage, ConflictSet, Conflicts, Requirement};
|
use uv_pypi_types::{ConflictPackage, ConflictSet, Conflicts};
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, Interpreter, InvalidEnvironmentKind, PythonDownloads, PythonEnvironment,
|
EnvironmentPreference, Interpreter, InvalidEnvironmentKind, PythonDownloads, PythonEnvironment,
|
||||||
PythonInstallation, PythonPreference, PythonRequest, PythonVariant, PythonVersionFile,
|
PythonInstallation, PythonPreference, PythonRequest, PythonVariant, PythonVersionFile,
|
||||||
|
|
|
@ -7,6 +7,7 @@ use std::{collections::BTreeSet, ffi::OsString};
|
||||||
use tracing::{debug, warn};
|
use tracing::{debug, warn};
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_distribution_types::{InstalledDist, Name};
|
use uv_distribution_types::{InstalledDist, Name};
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
use uv_fs::replace_symlink;
|
use uv_fs::replace_symlink;
|
||||||
|
@ -14,7 +15,6 @@ use uv_fs::Simplified;
|
||||||
use uv_installer::SitePackages;
|
use uv_installer::SitePackages;
|
||||||
use uv_pep440::{Version, VersionSpecifier, VersionSpecifiers};
|
use uv_pep440::{Version, VersionSpecifier, VersionSpecifiers};
|
||||||
use uv_pep508::PackageName;
|
use uv_pep508::PackageName;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, Interpreter, PythonDownloads, PythonEnvironment, PythonInstallation,
|
EnvironmentPreference, Interpreter, PythonDownloads, PythonEnvironment, PythonInstallation,
|
||||||
PythonPreference, PythonRequest, PythonVariant, VersionRequest,
|
PythonPreference, PythonRequest, PythonVariant, VersionRequest,
|
||||||
|
|
|
@ -10,11 +10,13 @@ use uv_cache::{Cache, Refresh};
|
||||||
use uv_cache_info::Timestamp;
|
use uv_cache_info::Timestamp;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{Concurrency, DryRun, PreviewMode, Reinstall, Upgrade};
|
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_normalize::PackageName;
|
||||||
use uv_pep440::{VersionSpecifier, VersionSpecifiers};
|
use uv_pep440::{VersionSpecifier, VersionSpecifiers};
|
||||||
use uv_pep508::MarkerTree;
|
use uv_pep508::MarkerTree;
|
||||||
use uv_pypi_types::{Requirement, RequirementSource};
|
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest,
|
EnvironmentPreference, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest,
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,15 +19,14 @@ use uv_cli::ExternalCommand;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{Concurrency, PreviewMode};
|
use uv_configuration::{Concurrency, PreviewMode};
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
IndexUrl, Name, NameRequirementSpecification, UnresolvedRequirement,
|
IndexUrl, Name, NameRequirementSpecification, Requirement, RequirementSource,
|
||||||
UnresolvedRequirementSpecification,
|
UnresolvedRequirement, UnresolvedRequirementSpecification,
|
||||||
};
|
};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_installer::{SatisfiesResult, SitePackages};
|
use uv_installer::{SatisfiesResult, SitePackages};
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep440::{VersionSpecifier, VersionSpecifiers};
|
use uv_pep440::{VersionSpecifier, VersionSpecifiers};
|
||||||
use uv_pep508::MarkerTree;
|
use uv_pep508::MarkerTree;
|
||||||
use uv_pypi_types::{Requirement, RequirementSource};
|
|
||||||
use uv_python::VersionRequest;
|
use uv_python::VersionRequest;
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, PythonDownloads, PythonEnvironment, PythonInstallation,
|
EnvironmentPreference, PythonDownloads, PythonEnvironment, PythonInstallation,
|
||||||
|
|
|
@ -8,9 +8,9 @@ use tracing::debug;
|
||||||
use uv_cache::Cache;
|
use uv_cache::Cache;
|
||||||
use uv_client::BaseClientBuilder;
|
use uv_client::BaseClientBuilder;
|
||||||
use uv_configuration::{Concurrency, DryRun, PreviewMode};
|
use uv_configuration::{Concurrency, DryRun, PreviewMode};
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_fs::CWD;
|
use uv_fs::CWD;
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, Interpreter, PythonDownloads, PythonInstallation, PythonPreference,
|
EnvironmentPreference, Interpreter, PythonDownloads, PythonInstallation, PythonPreference,
|
||||||
PythonRequest,
|
PythonRequest,
|
||||||
|
|
|
@ -17,10 +17,10 @@ use uv_configuration::{
|
||||||
NoBinary, NoBuild, PreviewMode, SourceStrategy,
|
NoBinary, NoBuild, PreviewMode, SourceStrategy,
|
||||||
};
|
};
|
||||||
use uv_dispatch::{BuildDispatch, SharedState};
|
use uv_dispatch::{BuildDispatch, SharedState};
|
||||||
|
use uv_distribution_types::Requirement;
|
||||||
use uv_distribution_types::{DependencyMetadata, Index, IndexLocations};
|
use uv_distribution_types::{DependencyMetadata, Index, IndexLocations};
|
||||||
use uv_fs::Simplified;
|
use uv_fs::Simplified;
|
||||||
use uv_install_wheel::LinkMode;
|
use uv_install_wheel::LinkMode;
|
||||||
use uv_pypi_types::Requirement;
|
|
||||||
use uv_python::{
|
use uv_python::{
|
||||||
EnvironmentPreference, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest,
|
EnvironmentPreference, PythonDownloads, PythonInstallation, PythonPreference, PythonRequest,
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,11 +28,11 @@ use uv_configuration::{
|
||||||
RequiredVersion, SourceStrategy, TargetTriple, TrustedHost, TrustedPublishing, Upgrade,
|
RequiredVersion, SourceStrategy, TargetTriple, TrustedHost, TrustedPublishing, Upgrade,
|
||||||
VersionControlSystem,
|
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_install_wheel::LinkMode;
|
||||||
use uv_normalize::{PackageName, PipGroupName};
|
use uv_normalize::{PackageName, PipGroupName};
|
||||||
use uv_pep508::{ExtraName, MarkerTree, RequirementOrigin};
|
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_python::{Prefix, PythonDownloads, PythonPreference, PythonVersion, Target};
|
||||||
use uv_resolver::{
|
use uv_resolver::{
|
||||||
AnnotationStyle, DependencyMode, ExcludeNewer, ForkStrategy, PrereleaseMode, ResolutionMode,
|
AnnotationStyle, DependencyMode, ExcludeNewer, ForkStrategy, PrereleaseMode, ResolutionMode,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue