Skip to content

Commit 59f3ec2

Browse files
Remove duplicate Lock::to_resolution (#9029)
## Summary This got moved to `InstallTarget`! Must've been an oversight not to delete. I verified that no code was changed here since the date that we moved it to `InstallTarget`.
1 parent dd4b27b commit 59f3ec2

File tree

1 file changed

+2
-137
lines changed
  • crates/uv-resolver/src/lock

1 file changed

+2
-137
lines changed

crates/uv-resolver/src/lock/mod.rs

Lines changed: 2 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use either::Either;
21
use itertools::Itertools;
32
use petgraph::graph::NodeIndex;
43
use petgraph::visit::EdgeRef;
@@ -25,14 +24,14 @@ use crate::{
2524
ResolutionMode,
2625
};
2726
use uv_cache_key::RepositoryUrl;
28-
use uv_configuration::{BuildOptions, DevGroupsManifest, ExtrasSpecification, InstallOptions};
27+
use uv_configuration::BuildOptions;
2928
use uv_distribution::DistributionDatabase;
3029
use uv_distribution_filename::{DistExtension, ExtensionError, SourceDistExtension, WheelFilename};
3130
use uv_distribution_types::{
3231
BuiltDist, DependencyMetadata, DirectUrlBuiltDist, DirectUrlSourceDist, DirectorySourceDist,
3332
Dist, DistributionMetadata, FileLocation, GitSourceDist, IndexLocations, IndexUrl, Name,
3433
PathBuiltDist, PathSourceDist, RegistryBuiltDist, RegistryBuiltWheel, RegistrySourceDist,
35-
RemoteSource, Resolution, ResolvedDist, StaticMetadata, ToUrlError, UrlString,
34+
RemoteSource, ResolvedDist, StaticMetadata, ToUrlError, UrlString,
3635
};
3736
use uv_fs::{relative_to, PortablePath, PortablePathBuf};
3837
use uv_git::{GitReference, GitSha, RepositoryReference, ResolvedRepositoryReference};
@@ -42,7 +41,6 @@ use uv_pep508::{split_scheme, MarkerEnvironment, MarkerTree, VerbatimUrl, Verbat
4241
use uv_platform_tags::{TagCompatibility, TagPriority, Tags};
4342
use uv_pypi_types::{
4443
redact_credentials, HashDigest, ParsedArchiveUrl, ParsedGitUrl, Requirement, RequirementSource,
45-
ResolverMarkerEnvironment,
4644
};
4745
use uv_types::{BuildContext, HashStrategy};
4846
use uv_workspace::dependency_groups::DependencyGroupError;
@@ -587,139 +585,6 @@ impl Lock {
587585
self.fork_markers.as_slice()
588586
}
589587

590-
/// Convert the [`Lock`] to a [`Resolution`] using the given marker environment, tags, and root.
591-
pub fn to_resolution(
592-
&self,
593-
target: InstallTarget<'_>,
594-
marker_env: &ResolverMarkerEnvironment,
595-
tags: &Tags,
596-
extras: &ExtrasSpecification,
597-
dev: &DevGroupsManifest,
598-
build_options: &BuildOptions,
599-
install_options: &InstallOptions,
600-
) -> Result<Resolution, LockError> {
601-
let mut queue: VecDeque<(&Package, Option<&ExtraName>)> = VecDeque::new();
602-
let mut seen = FxHashSet::default();
603-
604-
// Add the workspace packages to the queue.
605-
for root_name in target.packages() {
606-
let root = self
607-
.find_by_name(root_name)
608-
.map_err(|_| LockErrorKind::MultipleRootPackages {
609-
name: root_name.clone(),
610-
})?
611-
.ok_or_else(|| LockErrorKind::MissingRootPackage {
612-
name: root_name.clone(),
613-
})?;
614-
615-
if dev.prod() {
616-
// Add the base package.
617-
queue.push_back((root, None));
618-
619-
// Add any extras.
620-
match extras {
621-
ExtrasSpecification::None => {}
622-
ExtrasSpecification::All => {
623-
for extra in root.optional_dependencies.keys() {
624-
queue.push_back((root, Some(extra)));
625-
}
626-
}
627-
ExtrasSpecification::Some(extras) => {
628-
for extra in extras {
629-
queue.push_back((root, Some(extra)));
630-
}
631-
}
632-
}
633-
}
634-
635-
// Add any dev dependencies.
636-
for group in dev.iter() {
637-
for dep in root.dependency_groups.get(group).into_iter().flatten() {
638-
if dep.complexified_marker.evaluate(marker_env, &[]) {
639-
let dep_dist = self.find_by_id(&dep.package_id);
640-
if seen.insert((&dep.package_id, None)) {
641-
queue.push_back((dep_dist, None));
642-
}
643-
for extra in &dep.extra {
644-
if seen.insert((&dep.package_id, Some(extra))) {
645-
queue.push_back((dep_dist, Some(extra)));
646-
}
647-
}
648-
}
649-
}
650-
}
651-
}
652-
653-
// Add any dependency groups that are exclusive to the workspace root (e.g., dev
654-
// dependencies in (legacy) non-project workspace roots).
655-
let groups = target
656-
.groups()
657-
.map_err(|err| LockErrorKind::DependencyGroup { err })?;
658-
for group in dev.iter() {
659-
for dependency in groups.get(group).into_iter().flatten() {
660-
if dependency.marker.evaluate(marker_env, &[]) {
661-
let root_name = &dependency.name;
662-
let root = self
663-
.find_by_markers(root_name, marker_env)
664-
.map_err(|_| LockErrorKind::MultipleRootPackages {
665-
name: root_name.clone(),
666-
})?
667-
.ok_or_else(|| LockErrorKind::MissingRootPackage {
668-
name: root_name.clone(),
669-
})?;
670-
671-
// Add the base package.
672-
queue.push_back((root, None));
673-
674-
// Add any extras.
675-
for extra in &dependency.extras {
676-
queue.push_back((root, Some(extra)));
677-
}
678-
}
679-
}
680-
}
681-
682-
let mut map = BTreeMap::default();
683-
let mut hashes = BTreeMap::default();
684-
while let Some((dist, extra)) = queue.pop_front() {
685-
let deps = if let Some(extra) = extra {
686-
Either::Left(dist.optional_dependencies.get(extra).into_iter().flatten())
687-
} else {
688-
Either::Right(dist.dependencies.iter())
689-
};
690-
for dep in deps {
691-
if dep.complexified_marker.evaluate(marker_env, &[]) {
692-
let dep_dist = self.find_by_id(&dep.package_id);
693-
if seen.insert((&dep.package_id, None)) {
694-
queue.push_back((dep_dist, None));
695-
}
696-
for extra in &dep.extra {
697-
if seen.insert((&dep.package_id, Some(extra))) {
698-
queue.push_back((dep_dist, Some(extra)));
699-
}
700-
}
701-
}
702-
}
703-
if install_options.include_package(
704-
&dist.id.name,
705-
target.project_name(),
706-
&self.manifest.members,
707-
) {
708-
map.insert(
709-
dist.id.name.clone(),
710-
ResolvedDist::Installable(dist.to_dist(
711-
target.workspace().install_path(),
712-
TagPolicy::Required(tags),
713-
build_options,
714-
)?),
715-
);
716-
hashes.insert(dist.id.name.clone(), dist.hashes());
717-
}
718-
}
719-
let diagnostics = vec![];
720-
Ok(Resolution::new(map, hashes, diagnostics))
721-
}
722-
723588
/// Returns the TOML representation of this lockfile.
724589
pub fn to_toml(&self) -> anyhow::Result<String> {
725590
// We construct a TOML document manually instead of going through Serde to enable

0 commit comments

Comments
 (0)