From 4038c9a6af04801fd958a2b0e4893a48fedc5b21 Mon Sep 17 00:00:00 2001 From: konsti Date: Thu, 8 Aug 2024 17:25:06 +0200 Subject: [PATCH] Rename `distribution` to `packages` in lockfile (#5861) Currently, the entry for a package+version+source table is called `distribution`. That is incorrect, the `sdist` and `wheel` fields inside of that table are distributions, the table itself is for a package. We also align ourselves closer with PEP 751. I went through `lock.rs` and renamed all occurrences of "distribution" that actually referred to a "package". This change invalidates all existing lockfiles. Bikeshedding: Do we call it `package` or `packages`? See also https://github.com/python/peps/pull/3877 `package` is nice because it looks like a header: ```toml [[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "sniffio" }, ] sdist = { url = "https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6", size = 159642 } wheels = [ { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, ] ``` `packages` is nice because the field is not a single entry, but a list. 2/3 for https://github.com/astral-sh/uv/issues/4893 --------- Co-authored-by: Charlie Marsh --- crates/uv-requirements/src/upgrade.rs | 8 +- crates/uv-resolver/src/lock.rs | 597 +++++----- crates/uv-resolver/src/preferences.rs | 8 +- ...r__lock__tests__hash_optional_missing.snap | 8 +- ...r__lock__tests__hash_optional_present.snap | 8 +- ...r__lock__tests__hash_required_present.snap | 8 +- ...__missing_dependency_source_ambiguous.snap | 2 +- ...missing_dependency_source_unambiguous.snap | 16 +- ...g_dependency_source_version_ambiguous.snap | 2 +- ...dependency_source_version_unambiguous.snap | 16 +- ..._missing_dependency_version_ambiguous.snap | 2 +- ...issing_dependency_version_unambiguous.snap | 16 +- ...lock__tests__source_direct_has_subdir.snap | 8 +- ..._lock__tests__source_direct_no_subdir.snap | 8 +- ...solver__lock__tests__source_directory.snap | 8 +- ...esolver__lock__tests__source_editable.snap | 8 +- crates/uv/src/commands/project/add.rs | 4 +- crates/uv/src/commands/project/lock.rs | 29 +- crates/uv/tests/branching_urls.rs | 56 +- crates/uv/tests/edit.rs | 108 +- crates/uv/tests/lock.rs | 1035 ++++++++++------- crates/uv/tests/lock_scenarios.rs | 158 +-- crates/uv/tests/workspace.rs | 8 +- scripts/benchmark/uv.lock | 150 +-- 24 files changed, 1198 insertions(+), 1073 deletions(-) diff --git a/crates/uv-requirements/src/upgrade.rs b/crates/uv-requirements/src/upgrade.rs index 365ba39f9..6d9bd7777 100644 --- a/crates/uv-requirements/src/upgrade.rs +++ b/crates/uv-requirements/src/upgrade.rs @@ -67,17 +67,17 @@ pub fn read_lock_requirements(lock: &Lock, upgrade: &Upgrade) -> LockedRequireme let mut preferences = Vec::new(); let mut git = Vec::new(); - for dist in lock.distributions() { + for package in lock.packages() { // Skip the distribution if it's not included in the upgrade strategy. - if upgrade.contains(dist.name()) { + if upgrade.contains(package.name()) { continue; } // Map each entry in the lockfile to a preference. - preferences.push(Preference::from_lock(dist)); + preferences.push(Preference::from_lock(package)); // Map each entry in the lockfile to a Git SHA. - if let Some(git_ref) = dist.as_git_ref() { + if let Some(git_ref) = package.as_git_ref() { git.push(git_ref); } } diff --git a/crates/uv-resolver/src/lock.rs b/crates/uv-resolver/src/lock.rs index 6ab25a441..d3c50cca9 100644 --- a/crates/uv-resolver/src/lock.rs +++ b/crates/uv-resolver/src/lock.rs @@ -1,9 +1,8 @@ -#![allow(clippy::default_trait_access)] - use std::borrow::Cow; use std::collections::{BTreeMap, BTreeSet, VecDeque}; use std::convert::Infallible; use std::fmt::{Debug, Display}; +use std::hash::BuildHasherDefault; use std::path::{Path, PathBuf}; use std::str::FromStr; use std::sync::Arc; @@ -11,7 +10,7 @@ use std::sync::Arc; use either::Either; use itertools::Itertools; use petgraph::visit::EdgeRef; -use rustc_hash::{FxHashMap, FxHashSet}; +use rustc_hash::{FxBuildHasher, FxHashMap, FxHashSet}; use toml_edit::{value, Array, ArrayOfTables, InlineTable, Item, Table, Value}; use url::Url; @@ -62,19 +61,19 @@ pub struct Lock { /// We discard the lockfile if these options match. options: ResolverOptions, /// The actual locked version and their metadata. - distributions: Vec, - /// A map from distribution ID to index in `distributions`. + packages: Vec, + /// A map from package ID to index in `packages`. /// - /// This can be used to quickly lookup the full distribution for any ID - /// in this lock. For example, the dependencies for each distribution are - /// listed as distributions IDs. This map can be used to find the full - /// distribution for each such dependency. + /// This can be used to quickly lookup the full package for any ID + /// in this lock. For example, the dependencies for each package are + /// listed as package IDs. This map can be used to find the full + /// package for each such dependency. /// - /// It is guaranteed that every distribution in this lock has an entry in - /// this map, and that every dependency for every distribution has an ID + /// It is guaranteed that every package in this lock has an entry in + /// this map, and that every dependency for every package has an ID /// that exists in this map. That is, there are no dependencies that don't - /// have a corresponding locked distribution entry in the same lockfile. - by_id: FxHashMap, + /// have a corresponding locked package entry in the same lockfile. + by_id: FxHashMap, } impl Lock { @@ -91,7 +90,7 @@ impl Lock { let fork_markers = graph .fork_markers(dist.name(), &dist.version, dist.dist.version_or_url().url()) .cloned(); - let mut locked_dist = Distribution::from_annotated_dist(dist, fork_markers)?; + let mut locked_dist = Package::from_annotated_dist(dist, fork_markers)?; // Add all dependencies for edge in graph.petgraph.edges(node_index) { @@ -104,7 +103,7 @@ impl Lock { } let id = locked_dist.id.clone(); if let Some(locked_dist) = locked_dists.insert(id, locked_dist) { - return Err(LockErrorKind::DuplicateDistribution { + return Err(LockErrorKind::DuplicatePackage { id: locked_dist.id.clone(), } .into()); @@ -118,7 +117,7 @@ impl Lock { continue; }; if let Some(extra) = dist.extra.as_ref() { - let id = DistributionId::from_annotated_dist(dist); + let id = PackageId::from_annotated_dist(dist); let Some(locked_dist) = locked_dists.get_mut(&id) else { return Err(LockErrorKind::MissingExtraBase { id, @@ -136,7 +135,7 @@ impl Lock { } } if let Some(group) = dist.dev.as_ref() { - let id = DistributionId::from_annotated_dist(dist); + let id = PackageId::from_annotated_dist(dist); let Some(locked_dist) = locked_dists.get_mut(&id) else { return Err(LockErrorKind::MissingDevBase { id, @@ -155,7 +154,7 @@ impl Lock { } } - let distributions = locked_dists.into_values().collect(); + let packages = locked_dists.into_values().collect(); let requires_python = graph.requires_python.clone(); let options = ResolverOptions { resolution_mode: graph.options.resolution_mode, @@ -164,7 +163,7 @@ impl Lock { }; let lock = Self::new( VERSION, - distributions, + packages, requires_python, options, graph.fork_markers.clone(), @@ -172,23 +171,23 @@ impl Lock { Ok(lock) } - /// Initialize a [`Lock`] from a list of [`Distribution`] entries. + /// Initialize a [`Lock`] from a list of [`Package`] entries. fn new( version: u32, - mut distributions: Vec, + mut packages: Vec, requires_python: Option, options: ResolverOptions, fork_markers: Option>, ) -> Result { - // Put all dependencies for each distribution in a canonical order and + // Put all dependencies for each package in a canonical order and // check for duplicates. - for dist in &mut distributions { - dist.dependencies.sort(); - for windows in dist.dependencies.windows(2) { + for package in &mut packages { + package.dependencies.sort(); + for windows in package.dependencies.windows(2) { let (dep1, dep2) = (&windows[0], &windows[1]); if dep1 == dep2 { return Err(LockErrorKind::DuplicateDependency { - id: dist.id.clone(), + id: package.id.clone(), dependency: dep1.clone(), } .into()); @@ -196,13 +195,13 @@ impl Lock { } // Perform the same validation for optional dependencies. - for (extra, dependencies) in &mut dist.optional_dependencies { + for (extra, dependencies) in &mut package.optional_dependencies { dependencies.sort(); for windows in dependencies.windows(2) { let (dep1, dep2) = (&windows[0], &windows[1]); if dep1 == dep2 { return Err(LockErrorKind::DuplicateOptionalDependency { - id: dist.id.clone(), + id: package.id.clone(), extra: extra.clone(), dependency: dep1.clone(), } @@ -212,13 +211,13 @@ impl Lock { } // Perform the same validation for dev dependencies. - for (group, dependencies) in &mut dist.dev_dependencies { + for (group, dependencies) in &mut package.dev_dependencies { dependencies.sort(); for windows in dependencies.windows(2) { let (dep1, dep2) = (&windows[0], &windows[1]); if dep1 == dep2 { return Err(LockErrorKind::DuplicateDevDependency { - id: dist.id.clone(), + id: package.id.clone(), group: group.clone(), dependency: dep1.clone(), } @@ -230,18 +229,19 @@ impl Lock { // Remove wheels that don't match `requires-python` and can't be selected for // installation. if let Some(requires_python) = &requires_python { - dist.wheels + package + .wheels .retain(|wheel| requires_python.matches_wheel_tag(&wheel.filename)); } } - distributions.sort_by(|dist1, dist2| dist1.id.cmp(&dist2.id)); + packages.sort_by(|dist1, dist2| dist1.id.cmp(&dist2.id)); - // Check for duplicate distribution IDs and also build up the map for - // distributions keyed by their ID. + // Check for duplicate package IDs and also build up the map for + // packages keyed by their ID. let mut by_id = FxHashMap::default(); - for (i, dist) in distributions.iter().enumerate() { + for (i, dist) in packages.iter().enumerate() { if by_id.insert(dist.id.clone(), i).is_some() { - return Err(LockErrorKind::DuplicateDistribution { + return Err(LockErrorKind::DuplicatePackage { id: dist.id.clone(), } .into()); @@ -250,7 +250,7 @@ impl Lock { // Build up a map from ID to extras. let mut extras_by_id = FxHashMap::default(); - for dist in &distributions { + for dist in &packages { for extra in dist.optional_dependencies.keys() { extras_by_id .entry(dist.id.clone()) @@ -260,7 +260,7 @@ impl Lock { } // Remove any non-existent extras (e.g., extras that were requested but don't exist). - for dist in &mut distributions { + for dist in &mut packages { for dep in dist .dependencies .iter_mut() @@ -269,7 +269,7 @@ impl Lock { { dep.extra.retain(|extra| { extras_by_id - .get(&dep.distribution_id) + .get(&dep.package_id) .is_some_and(|extras| extras.contains(extra)) }); } @@ -277,10 +277,10 @@ impl Lock { // Check that every dependency has an entry in `by_id`. If any don't, // it implies we somehow have a dependency with no corresponding locked - // distribution. - for dist in &distributions { + // package. + for dist in &packages { for dep in &dist.dependencies { - if !by_id.contains_key(&dep.distribution_id) { + if !by_id.contains_key(&dep.package_id) { return Err(LockErrorKind::UnrecognizedDependency { id: dist.id.clone(), dependency: dep.clone(), @@ -292,7 +292,7 @@ impl Lock { // Perform the same validation for optional dependencies. for dependencies in dist.optional_dependencies.values() { for dep in dependencies { - if !by_id.contains_key(&dep.distribution_id) { + if !by_id.contains_key(&dep.package_id) { return Err(LockErrorKind::UnrecognizedDependency { id: dist.id.clone(), dependency: dep.clone(), @@ -305,7 +305,7 @@ impl Lock { // Perform the same validation for dev dependencies. for dependencies in dist.dev_dependencies.values() { for dep in dependencies { - if !by_id.contains_key(&dep.distribution_id) { + if !by_id.contains_key(&dep.package_id) { return Err(LockErrorKind::UnrecognizedDependency { id: dist.id.clone(), dependency: dep.clone(), @@ -335,19 +335,19 @@ impl Lock { fork_markers, requires_python, options, - distributions, + packages, by_id, }) } - /// Returns the [`Distribution`] entries in this lock. - pub fn distributions(&self) -> &[Distribution] { - &self.distributions + /// Returns the [`Package`] entries in this lock. + pub fn packages(&self) -> &[Package] { + &self.packages } - /// Returns the owned [`Distribution`] entries in this lock. - pub fn into_distributions(self) -> Vec { - self.distributions + /// Returns the owned [`Package`] entries in this lock. + pub fn into_packages(self) -> Vec { + self.packages } /// Returns the supported Python version range for the lockfile, if present. @@ -385,14 +385,14 @@ impl Lock { extras: &ExtrasSpecification, dev: &[GroupName], ) -> Result { - let mut queue: VecDeque<(&Distribution, Option<&ExtraName>)> = VecDeque::new(); + let mut queue: VecDeque<(&Package, Option<&ExtraName>)> = VecDeque::new(); let mut seen = FxHashSet::default(); // Add the workspace packages to the queue. for root_name in project.packages() { let root = self .find_by_name(root_name) - .expect("found too many distributions matching root") + .expect("found too many packages matching root") .expect("could not find root"); // Add the base package. @@ -420,7 +420,7 @@ impl Lock { for dependency in project.group(group) { let root = self .find_by_name(dependency) - .expect("found too many distributions matching root") + .expect("found too many packages matching root") .expect("could not find root"); queue.push_back((root, None)); } @@ -445,12 +445,12 @@ impl Lock { .as_ref() .map_or(true, |marker| marker.evaluate(marker_env, &[])) { - let dep_dist = self.find_by_id(&dep.distribution_id); - if seen.insert((&dep.distribution_id, None)) { + let dep_dist = self.find_by_id(&dep.package_id); + if seen.insert((&dep.package_id, None)) { queue.push_back((dep_dist, None)); } for extra in &dep.extra { - if seen.insert((&dep.distribution_id, Some(extra))) { + if seen.insert((&dep.package_id, Some(extra))) { queue.push_back((dep_dist, Some(extra))); } } @@ -506,33 +506,33 @@ impl Lock { doc.insert("options", Item::Table(options_table)); } - // Count the number of distributions for each package name. When - // there's only one distribution for a particular package name (the + // Count the number of packages for each package name. When + // there's only one package for a particular package name (the // overwhelmingly common case), we can omit some data (like source and // version) on dependency edges since it is strictly redundant. let mut dist_count_by_name: FxHashMap = FxHashMap::default(); - for dist in &self.distributions { + for dist in &self.packages { *dist_count_by_name.entry(dist.id.name.clone()).or_default() += 1; } - let mut distributions = ArrayOfTables::new(); - for dist in &self.distributions { - distributions.push(dist.to_toml(&dist_count_by_name)?); + let mut packages = ArrayOfTables::new(); + for dist in &self.packages { + packages.push(dist.to_toml(&dist_count_by_name)?); } - doc.insert("distribution", Item::ArrayOfTables(distributions)); + doc.insert("package", Item::ArrayOfTables(packages)); Ok(doc.to_string()) } - /// Returns the distribution with the given name. If there are multiple - /// matching distributions, then an error is returned. If there are no - /// matching distributions, then `Ok(None)` is returned. - fn find_by_name(&self, name: &PackageName) -> Result, String> { + /// Returns the package with the given name. If there are multiple + /// matching packages, then an error is returned. If there are no + /// matching packages, then `Ok(None)` is returned. + fn find_by_name(&self, name: &PackageName) -> Result, String> { let mut found_dist = None; - for dist in &self.distributions { + for dist in &self.packages { if &dist.id.name == name { if found_dist.is_some() { - return Err(format!("found multiple distributions matching `{name}`")); + return Err(format!("found multiple packages matching `{name}`")); } found_dist = Some(dist); } @@ -540,12 +540,9 @@ impl Lock { Ok(found_dist) } - fn find_by_id(&self, id: &DistributionId) -> &Distribution { - let index = *self.by_id.get(id).expect("locked distribution for ID"); - let dist = self - .distributions - .get(index) - .expect("valid index for distribution"); + fn find_by_id(&self, id: &PackageId) -> &Package { + let index = *self.by_id.get(id).expect("locked package for ID"); + let dist = self.packages.get(index).expect("valid index for package"); dist } @@ -558,17 +555,17 @@ impl Lock { upgrade: &Upgrade, ) -> Result { let distributions = - FxOnceMap::with_capacity_and_hasher(self.distributions.len(), Default::default()); + FxOnceMap::with_capacity_and_hasher(self.packages.len(), BuildHasherDefault::default()); let mut packages: FxHashMap<_, BTreeMap> = - FxHashMap::with_capacity_and_hasher(self.distributions.len(), Default::default()); + FxHashMap::with_capacity_and_hasher(self.packages.len(), FxBuildHasher); - for distribution in &self.distributions { + for package in &self.packages { // Skip packages that may be upgraded from their pinned version. - if upgrade.contains(distribution.name()) { + if upgrade.contains(package.name()) { continue; } - match distribution.id.source { + match package.id.source { Source::Registry(..) | Source::Git(..) => {} // Skip local and direct URL dependencies, as their metadata may have been mutated // without a version change. @@ -579,17 +576,17 @@ impl Lock { } // Add registry distributions to the package index. - if let Some(prioritized_dist) = distribution.to_prioritized_dist(install_path)? { + if let Some(prioritized_dist) = package.to_prioritized_dist(install_path)? { packages - .entry(distribution.name().clone()) + .entry(package.name().clone()) .or_default() - .insert(distribution.id.version.clone(), prioritized_dist); + .insert(package.id.version.clone(), prioritized_dist); } // Extract the distribution metadata. - let version_id = distribution.version_id(install_path)?; - let hashes = distribution.hashes(); - let metadata = distribution.to_metadata(install_path)?; + let version_id = package.version_id(install_path)?; + let hashes = package.hashes(); + let metadata = package.to_metadata(install_path)?; // Add metadata to the distributions index. let response = MetadataResponse::Found(ArchiveMetadata::with_hashes(metadata, hashes)); @@ -635,8 +632,8 @@ struct LockWire { /// We discard the lockfile if these options match. #[serde(default)] options: ResolverOptions, - #[serde(rename = "distribution", default)] - distributions: Vec, + #[serde(rename = "package", alias = "distribution", default)] + packages: Vec, } impl From for LockWire { @@ -646,11 +643,7 @@ impl From for LockWire { requires_python: lock.requires_python, fork_markers: lock.fork_markers, options: lock.options, - distributions: lock - .distributions - .into_iter() - .map(DistributionWire::from) - .collect(), + packages: lock.packages.into_iter().map(PackageWire::from).collect(), } } } @@ -659,31 +652,31 @@ impl TryFrom for Lock { type Error = LockError; fn try_from(wire: LockWire) -> Result { - // Count the number of distributions for each package name. When - // there's only one distribution for a particular package name (the + // Count the number of sources for each package name. When + // there's only one source for a particular package name (the // overwhelmingly common case), we can omit some data (like source and // version) on dependency edges since it is strictly redundant. - let mut unambiguous_dist_ids: FxHashMap = FxHashMap::default(); + let mut unambiguous_package_ids: FxHashMap = FxHashMap::default(); let mut ambiguous = FxHashSet::default(); - for dist in &wire.distributions { + for dist in &wire.packages { if ambiguous.contains(&dist.id.name) { continue; } - if unambiguous_dist_ids.remove(&dist.id.name).is_some() { + if unambiguous_package_ids.remove(&dist.id.name).is_some() { ambiguous.insert(dist.id.name.clone()); continue; } - unambiguous_dist_ids.insert(dist.id.name.clone(), dist.id.clone()); + unambiguous_package_ids.insert(dist.id.name.clone(), dist.id.clone()); } - let distributions = wire - .distributions + let packages = wire + .packages .into_iter() - .map(|dist| dist.unwire(&unambiguous_dist_ids)) + .map(|dist| dist.unwire(&unambiguous_package_ids)) .collect::, _>>()?; Lock::new( wire.version, - distributions, + packages, wire.requires_python, wire.options, wire.fork_markers, @@ -692,13 +685,13 @@ impl TryFrom for Lock { } #[derive(Clone, Debug, PartialEq, Eq)] -pub struct Distribution { - pub(crate) id: DistributionId, +pub struct Package { + pub(crate) id: PackageId, sdist: Option, wheels: Vec, - /// If there are multiple distributions for the same package name, we add the markers of the - /// fork(s) that contained this distribution, so we can set the correct preferences in the next - /// resolution. + /// If there are multiple versions or sources for the same package name, we add the markers of + /// the fork(s) that contained this version or source, so we can set the correct preferences in + /// the next resolution. /// /// Named `environment-markers` in `uv.lock`. fork_markers: Option>, @@ -707,15 +700,15 @@ pub struct Distribution { dev_dependencies: BTreeMap>, } -impl Distribution { +impl Package { fn from_annotated_dist( annotated_dist: &AnnotatedDist, fork_markers: Option>, ) -> Result { - let id = DistributionId::from_annotated_dist(annotated_dist); + let id = PackageId::from_annotated_dist(annotated_dist); let sdist = SourceDist::from_annotated_dist(&id, annotated_dist)?; let wheels = Wheel::from_annotated_dist(annotated_dist)?; - Ok(Distribution { + Ok(Package { id, sdist, wheels, @@ -726,11 +719,11 @@ impl Distribution { }) } - /// Add the [`AnnotatedDist`] as a dependency of the [`Distribution`]. + /// Add the [`AnnotatedDist`] as a dependency of the [`Package`]. fn add_dependency(&mut self, annotated_dist: &AnnotatedDist, marker: Option<&MarkerTree>) { let new_dep = Dependency::from_annotated_dist(annotated_dist, marker); for existing_dep in &mut self.dependencies { - if existing_dep.distribution_id == new_dep.distribution_id + if existing_dep.package_id == new_dep.package_id && existing_dep.marker == new_dep.marker { existing_dep.extra.extend(new_dep.extra); @@ -740,7 +733,7 @@ impl Distribution { self.dependencies.push(new_dep); } - /// Add the [`AnnotatedDist`] as an optional dependency of the [`Distribution`]. + /// Add the [`AnnotatedDist`] as an optional dependency of the [`Package`]. fn add_optional_dependency( &mut self, extra: ExtraName, @@ -753,7 +746,7 @@ impl Distribution { .push(Dependency::from_annotated_dist(annotated_dist, marker)); } - /// Add the [`AnnotatedDist`] as a development dependency of the [`Distribution`]. + /// Add the [`AnnotatedDist`] as a development dependency of the [`Package`]. fn add_dev_dependency( &mut self, dev: GroupName, @@ -766,7 +759,7 @@ impl Distribution { .push(Dependency::from_annotated_dist(annotated_dist, marker)); } - /// Convert the [`Distribution`] to a [`Dist`] that can be used in installation. + /// Convert the [`Package`] to a [`Dist`] that can be used in installation. fn to_dist(&self, workspace_root: &Path, tags: &Tags) -> Result { if let Some(best_wheel_index) = self.find_best_wheel(tags) { return match &self.id.source { @@ -835,7 +828,7 @@ impl Distribution { .into()) } - /// Convert the source of this [`Distribution`] to a [`SourceDist`] that can be used in installation. + /// Convert the source of this [`Package`] to a [`SourceDist`] that can be used in installation. /// /// Returns `Ok(None)` if the source cannot be converted because `self.sdist` is `None`. This is required /// for registry sources. @@ -956,7 +949,7 @@ impl Distribution { Ok(Some(sdist)) } - /// Convert the [`Distribution`] to a [`PrioritizedDist`] that can be used for resolution, if + /// Convert the [`Package`] to a [`PrioritizedDist`] that can be used for resolution, if /// it has a registry source. fn to_prioritized_dist( &self, @@ -996,7 +989,7 @@ impl Distribution { Ok(Some(prioritized_dist)) } - /// Convert the [`Distribution`] to [`Metadata`] that can be used for resolution. + /// Convert the [`Package`] to [`Metadata`] that can be used for resolution. pub fn to_metadata(&self, workspace_root: &Path) -> Result { let name = self.name().clone(); let version = self.id.version.clone(); @@ -1154,12 +1147,12 @@ impl Distribution { best.map(|(_, i)| i) } - /// Returns the [`PackageName`] of the distribution. + /// Returns the [`PackageName`] of the package. pub fn name(&self) -> &PackageName { &self.id.name } - /// Returns the [`Version`] of the distribution. + /// Returns the [`Version`] of the package. pub fn version(&self) -> &Version { &self.id.version } @@ -1179,7 +1172,7 @@ impl Distribution { } } - /// Returns all the hashes associated with this [`Distribution`]. + /// Returns all the hashes associated with this [`Package`]. fn hashes(&self) -> Vec { let mut hashes = Vec::new(); if let Some(ref sdist) = self.sdist { @@ -1193,7 +1186,7 @@ impl Distribution { hashes } - /// Returns the [`ResolvedRepositoryReference`] for the distribution, if it is a Git source. + /// Returns the [`ResolvedRepositoryReference`] for the package, if it is a Git source. pub fn as_git_ref(&self) -> Option { match &self.id.source { Source::Git(url, git) => Some(ResolvedRepositoryReference { @@ -1209,7 +1202,7 @@ impl Distribution { } /// Attempts to construct a `VerbatimUrl` from the given `Path`. -fn verbatim_url(path: PathBuf, id: &DistributionId) -> Result { +fn verbatim_url(path: PathBuf, id: &PackageId) -> Result { let url = VerbatimUrl::from_path(path).map_err(|err| LockErrorKind::VerbatimUrl { id: id.clone(), err, @@ -1220,9 +1213,9 @@ fn verbatim_url(path: PathBuf, id: &DistributionId) -> Result, #[serde(default)] @@ -1237,17 +1230,17 @@ struct DistributionWire { dev_dependencies: BTreeMap>, } -impl DistributionWire { +impl PackageWire { fn unwire( self, - unambiguous_dist_ids: &FxHashMap, - ) -> Result { + unambiguous_package_ids: &FxHashMap, + ) -> Result { let unwire_deps = |deps: Vec| -> Result, LockError> { deps.into_iter() - .map(|dep| dep.unwire(unambiguous_dist_ids)) + .map(|dep| dep.unwire(unambiguous_package_ids)) .collect() }; - Ok(Distribution { + Ok(Package { id: self.id, sdist: self.sdist, wheels: self.wheels, @@ -1267,12 +1260,12 @@ impl DistributionWire { } } -impl From for DistributionWire { - fn from(dist: Distribution) -> DistributionWire { +impl From for PackageWire { + fn from(dist: Package) -> PackageWire { let wire_deps = |deps: Vec| -> Vec { deps.into_iter().map(DependencyWire::from).collect() }; - DistributionWire { + PackageWire { id: dist.id, sdist: dist.sdist, wheels: dist.wheels, @@ -1292,28 +1285,28 @@ impl From for DistributionWire { } } -/// Inside the lockfile, we match a dependency entry to a distribution entry through a key made up +/// Inside the lockfile, we match a dependency entry to a package entry through a key made up /// of the name, the version and the source url. #[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord, serde::Deserialize)] -pub(crate) struct DistributionId { +pub(crate) struct PackageId { pub(crate) name: PackageName, pub(crate) version: Version, source: Source, } -impl DistributionId { - fn from_annotated_dist(annotated_dist: &AnnotatedDist) -> DistributionId { +impl PackageId { + fn from_annotated_dist(annotated_dist: &AnnotatedDist) -> PackageId { let name = annotated_dist.metadata.name.clone(); let version = annotated_dist.metadata.version.clone(); let source = Source::from_resolved_dist(&annotated_dist.dist); - DistributionId { + PackageId { name, version, source, } } - /// Writes this distribution ID inline into the table given. + /// Writes this package ID inline into the table given. /// /// When a map is given, and if the package name in this ID is unambiguous /// (i.e., it has a count of 1 in the map), then the `version` and `source` @@ -1329,27 +1322,27 @@ impl DistributionId { } } -impl std::fmt::Display for DistributionId { +impl std::fmt::Display for PackageId { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { write!(f, "{}=={} @ {}", self.name, self.version, self.source) } } #[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord, serde::Deserialize)] -struct DistributionIdForDependency { +struct PackageIdForDependency { name: PackageName, version: Option, source: Option, } -impl DistributionIdForDependency { +impl PackageIdForDependency { fn unwire( self, - unambiguous_dist_ids: &FxHashMap, - ) -> Result { - let unambiguous_dist_id = unambiguous_dist_ids.get(&self.name); + unambiguous_package_ids: &FxHashMap, + ) -> Result { + let unambiguous_package_id = unambiguous_package_ids.get(&self.name); let version = self.version.map(Ok::<_, LockError>).unwrap_or_else(|| { - let Some(dist_id) = unambiguous_dist_id else { + let Some(dist_id) = unambiguous_package_id else { return Err(LockErrorKind::MissingDependencyVersion { name: self.name.clone(), } @@ -1358,15 +1351,15 @@ impl DistributionIdForDependency { Ok(dist_id.version.clone()) })?; let source = self.source.map(Ok::<_, LockError>).unwrap_or_else(|| { - let Some(dist_id) = unambiguous_dist_id else { + let Some(package_id) = unambiguous_package_id else { return Err(LockErrorKind::MissingDependencySource { name: self.name.clone(), } .into()); }; - Ok(dist_id.source.clone()) + Ok(package_id.source.clone()) })?; - Ok(DistributionId { + Ok(PackageId { name: self.name, version, source, @@ -1374,9 +1367,9 @@ impl DistributionIdForDependency { } } -impl From for DistributionIdForDependency { - fn from(id: DistributionId) -> DistributionIdForDependency { - DistributionIdForDependency { +impl From for PackageIdForDependency { + fn from(id: PackageId) -> PackageIdForDependency { + PackageIdForDependency { name: id.name, version: Some(id.version), source: Some(id.source), @@ -1384,13 +1377,13 @@ impl From for DistributionIdForDependency { } } -/// A unique identifier to differentiate between different distributions for the same version of a +/// A unique identifier to differentiate between different sources for the same version of a /// package. /// /// NOTE: Care should be taken when adding variants to this enum. Namely, new /// variants should be added without changing the relative ordering of other /// variants. Otherwise, this could cause the lockfile to have a different -/// canonical ordering of distributions. +/// canonical ordering of sources. #[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord, serde::Deserialize)] #[serde(try_from = "SourceWire")] enum Source { @@ -1667,7 +1660,7 @@ struct DirectSource { /// NOTE: Care should be taken when adding variants to this enum. Namely, new /// variants should be added without changing the relative ordering of other /// variants. Otherwise, this could cause the lockfile to have a different -/// canonical ordering of distributions. +/// canonical ordering of package entries. #[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)] struct GitSource { precise: GitSha, @@ -1780,7 +1773,7 @@ impl SourceDist { impl SourceDist { fn from_annotated_dist( - id: &DistributionId, + id: &PackageId, annotated_dist: &AnnotatedDist, ) -> Result, LockError> { match annotated_dist.dist { @@ -1793,7 +1786,7 @@ impl SourceDist { } fn from_dist( - id: &DistributionId, + id: &PackageId, dist: &Dist, hashes: &[HashDigest], ) -> Result, LockError> { @@ -1810,7 +1803,7 @@ impl SourceDist { } fn from_source_dist( - id: &DistributionId, + id: &PackageId, source_dist: &distribution_types::SourceDist, hashes: &[HashDigest], ) -> Result, LockError> { @@ -1846,7 +1839,7 @@ impl SourceDist { } fn from_direct_dist( - id: &DistributionId, + id: &PackageId, direct_dist: &DirectUrlSourceDist, hashes: &[HashDigest], ) -> Result { @@ -2175,10 +2168,10 @@ impl TryFrom for Wheel { } } -/// A single dependency of a distribution in a lockfile. +/// A single dependency of a package in a lockfile. #[derive(Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] struct Dependency { - distribution_id: DistributionId, + package_id: PackageId, extra: BTreeSet, marker: Option, } @@ -2188,11 +2181,11 @@ impl Dependency { annotated_dist: &AnnotatedDist, marker: Option<&MarkerTree>, ) -> Dependency { - let distribution_id = DistributionId::from_annotated_dist(annotated_dist); + let package_id = PackageId::from_annotated_dist(annotated_dist); let extra = annotated_dist.extra.iter().cloned().collect(); let marker = marker.cloned(); Dependency { - distribution_id, + package_id, extra, marker, } @@ -2207,20 +2200,19 @@ impl Dependency { // Keep track of extras, these will be denormalized later. if !self.extra.is_empty() { extras - .entry(self.distribution_id.name.clone()) + .entry(self.package_id.name.clone()) .or_default() .extend(self.extra.iter().cloned()); } // Reconstruct the `RequirementSource` from the `Source`. - let source = match &self.distribution_id.source { + let source = match &self.package_id.source { Source::Registry(_) => RequirementSource::Registry { // We don't store the version specifier that was originally used for resolution in // the lockfile, so this might be too restrictive. However, this is the only version // we have the metadata for, so if resolution fails we will need to fallback to a // clean resolve. - specifier: VersionSpecifier::equals_version(self.distribution_id.version.clone()) - .into(), + specifier: VersionSpecifier::equals_version(self.package_id.version.clone()).into(), index: None, }, Source::Git(repository, git) => { @@ -2246,24 +2238,24 @@ impl Dependency { Source::Path(ref path) => RequirementSource::Path { lock_path: path.clone(), install_path: workspace_root.join(path), - url: verbatim_url(workspace_root.join(path), &self.distribution_id)?, + url: verbatim_url(workspace_root.join(path), &self.package_id)?, }, Source::Directory(ref path) => RequirementSource::Directory { editable: false, lock_path: path.clone(), install_path: workspace_root.join(path), - url: verbatim_url(workspace_root.join(path), &self.distribution_id)?, + url: verbatim_url(workspace_root.join(path), &self.package_id)?, }, Source::Editable(ref path) => RequirementSource::Directory { editable: true, lock_path: path.clone(), install_path: workspace_root.join(path), - url: verbatim_url(workspace_root.join(path), &self.distribution_id)?, + url: verbatim_url(workspace_root.join(path), &self.package_id)?, }, }; let requirement = Requirement { - name: self.distribution_id.name.clone(), + name: self.package_id.name.clone(), marker: self.marker.clone(), origin: None, extras: Vec::new(), @@ -2276,7 +2268,7 @@ impl Dependency { /// Returns the TOML representation of this dependency. fn to_toml(&self, dist_count_by_name: &FxHashMap) -> Table { let mut table = Table::new(); - self.distribution_id + self.package_id .to_toml(Some(dist_count_by_name), &mut table); if !self.extra.is_empty() { let extra_array = self @@ -2300,28 +2292,26 @@ impl std::fmt::Display for Dependency { write!( f, "{}=={} @ {}", - self.distribution_id.name, - self.distribution_id.version, - self.distribution_id.source + self.package_id.name, self.package_id.version, self.package_id.source ) } else { write!( f, "{}[{}]=={} @ {}", - self.distribution_id.name, + self.package_id.name, self.extra.iter().join(","), - self.distribution_id.version, - self.distribution_id.source + self.package_id.version, + self.package_id.source ) } } } -/// A single dependency of a distribution in a lockfile. +/// A single dependency of a package in a lockfile. #[derive(Clone, Debug, Eq, PartialEq, PartialOrd, Ord, serde::Deserialize)] struct DependencyWire { #[serde(flatten)] - distribution_id: DistributionIdForDependency, + package_id: PackageIdForDependency, #[serde(default)] extra: BTreeSet, marker: Option, @@ -2330,10 +2320,10 @@ struct DependencyWire { impl DependencyWire { fn unwire( self, - unambiguous_dist_ids: &FxHashMap, + unambiguous_package_ids: &FxHashMap, ) -> Result { Ok(Dependency { - distribution_id: self.distribution_id.unwire(unambiguous_dist_ids)?, + package_id: self.package_id.unwire(unambiguous_package_ids)?, extra: self.extra, marker: self.marker, }) @@ -2343,7 +2333,7 @@ impl DependencyWire { impl From for DependencyWire { fn from(dependency: Dependency) -> DependencyWire { DependencyWire { - distribution_id: DistributionIdForDependency::from(dependency.distribution_id), + package_id: PackageIdForDependency::from(dependency.package_id), extra: dependency.extra, marker: dependency.marker, } @@ -2417,44 +2407,44 @@ where /// is with the caller somewhere in such cases. #[derive(Debug, thiserror::Error)] enum LockErrorKind { - /// An error that occurs when multiple distributions with the same + /// An error that occurs when multiple packages with the same /// ID were found. - #[error("found duplicate distribution `{id}`")] - DuplicateDistribution { - /// The ID of the conflicting distributions. - id: DistributionId, + #[error("found duplicate package `{id}`")] + DuplicatePackage { + /// The ID of the conflicting package. + id: PackageId, }, /// An error that occurs when there are multiple dependencies for the - /// same distribution that have identical identifiers. - #[error("for distribution `{id}`, found duplicate dependency `{dependency}`")] + /// same package that have identical identifiers. + #[error("for package `{id}`, found duplicate dependency `{dependency}`")] DuplicateDependency { - /// The ID of the distribution for which a duplicate dependency was + /// The ID of the package for which a duplicate dependency was /// found. - id: DistributionId, + id: PackageId, /// The ID of the conflicting dependency. dependency: Dependency, }, /// An error that occurs when there are multiple dependencies for the - /// same distribution that have identical identifiers, as part of the - /// that distribution's optional dependencies. - #[error("for distribution `{id}[{extra}]`, found duplicate dependency `{dependency}`")] + /// same package that have identical identifiers, as part of the + /// that package's optional dependencies. + #[error("for package `{id}[{extra}]`, found duplicate dependency `{dependency}`")] DuplicateOptionalDependency { - /// The ID of the distribution for which a duplicate dependency was + /// The ID of the package for which a duplicate dependency was /// found. - id: DistributionId, + id: PackageId, /// The name of the optional dependency group. extra: ExtraName, /// The ID of the conflicting dependency. dependency: Dependency, }, /// An error that occurs when there are multiple dependencies for the - /// same distribution that have identical identifiers, as part of the - /// that distribution's development dependencies. - #[error("for distribution `{id}:{group}`, found duplicate dependency `{dependency}`")] + /// same package that have identical identifiers, as part of the + /// that package's development dependencies. + #[error("for package `{id}:{group}`, found duplicate dependency `{dependency}`")] DuplicateDevDependency { - /// The ID of the distribution for which a duplicate dependency was + /// The ID of the package for which a duplicate dependency was /// found. - id: DistributionId, + id: PackageId, /// The name of the dev dependency group. group: GroupName, /// The ID of the conflicting dependency. @@ -2479,45 +2469,45 @@ enum LockErrorKind { ), /// An error that occurs when there's an unrecognized dependency. /// - /// That is, a dependency for a distribution that isn't in the lockfile. - #[error( - "for distribution `{id}`, found dependency `{dependency}` with no locked distribution" - )] + /// That is, a dependency for a package that isn't in the lockfile. + #[error("for package `{id}`, found dependency `{dependency}` with no locked package")] UnrecognizedDependency { - /// The ID of the distribution that has an unrecognized dependency. - id: DistributionId, - /// The ID of the dependency that doesn't have a corresponding distribution + /// The ID of the package that has an unrecognized dependency. + id: PackageId, + /// The ID of the dependency that doesn't have a corresponding package /// entry. dependency: Dependency, }, /// An error that occurs when a hash is expected (or not) for a particular /// artifact, but one was not found (or was). - #[error("since the distribution `{id}` comes from a {source} dependency, a hash was {expected} but one was not found for {artifact_type}", source = id.source.name(), expected = if *expected { "expected" } else { "not expected" })] + #[error("since the package `{id}` comes from a {source} dependency, a hash was {expected} but one was not found for {artifact_type}", source = id.source.name(), expected = if *expected { "expected" } else { "not expected" })] Hash { - /// The ID of the distribution that has a missing hash. - id: DistributionId, - /// The specific type of artifact, e.g., "source distribution" + /// The ID of the package that has a missing hash. + id: PackageId, + /// The specific type of artifact, e.g., "source package" /// or "wheel". artifact_type: &'static str, /// When true, a hash is expected to be present. expected: bool, }, - /// An error that occurs when a distribution is included with an extra name, - /// but no corresponding base distribution (i.e., without the extra) exists. - #[error("found distribution `{id}` with extra `{extra}` but no base distribution")] + /// An error that occurs when a package is included with an extra name, + /// but no corresponding base package (i.e., without the extra) exists. + #[error("found package `{id}` with extra `{extra}` but no base package")] MissingExtraBase { - /// The ID of the distribution that has a missing base. - id: DistributionId, + /// The ID of the package that has a missing base. + id: PackageId, /// The extra name that was found. extra: ExtraName, }, - /// An error that occurs when a distribution is included with a development - /// dependency group, but no corresponding base distribution (i.e., without + /// An error that occurs when a package is included with a development + /// dependency group, but no corresponding base package (i.e., without /// the group) exists. - #[error("found distribution `{id}` with development dependency group `{group}` but no base distribution")] + #[error( + "found package `{id}` with development dependency group `{group}` but no base package" + )] MissingDevBase { - /// The ID of the distribution that has a missing base. - id: DistributionId, + /// The ID of the package that has a missing base. + id: PackageId, /// The development dependency group that was found. group: GroupName, }, @@ -2526,7 +2516,7 @@ enum LockErrorKind { #[error("wheels cannot come from {source_type} sources")] InvalidWheelSource { /// The ID of the distribution that has a missing base. - id: DistributionId, + id: PackageId, /// The kind of the invalid source. source_type: &'static str, }, @@ -2535,46 +2525,46 @@ enum LockErrorKind { #[error("found registry distribution {id} without a valid URL")] MissingUrl { /// The ID of the distribution that is missing a URL. - id: DistributionId, + id: PackageId, }, /// An error that occurs when a distribution indicates that it is sourced from a registry, but /// is missing a filename. #[error("found registry distribution {id} without a valid filename")] MissingFilename { /// The ID of the distribution that is missing a filename. - id: DistributionId, + id: PackageId, }, /// An error that occurs when a distribution is included with neither wheels nor a source /// distribution. #[error("distribution {id} can't be installed because it doesn't have a source distribution or wheel for the current platform")] NeitherSourceDistNorWheel { /// The ID of the distribution that has a missing base. - id: DistributionId, + id: PackageId, }, /// An error that occurs when converting between URLs and paths. #[error("found dependency `{id}` with no locked distribution")] VerbatimUrl { /// The ID of the distribution that has a missing base. - id: DistributionId, + id: PackageId, /// The inner error we forward. #[source] err: VerbatimUrlError, }, - /// An error that occurs when an ambiguous `distribution.dependency` is + /// An error that occurs when an ambiguous `package.dependency` is /// missing a `version` field. #[error( "dependency {name} has missing `version` \ - field but has more than one matching distribution" + field but has more than one matching package" )] MissingDependencyVersion { /// The name of the dependency that is missing a `version` field. name: PackageName, }, - /// An error that occurs when an ambiguous `distribution.dependency` is + /// An error that occurs when an ambiguous `package.dependency` is /// missing a `source` field. #[error( "dependency {name} has missing `source` \ - field but has more than one matching distribution" + field but has more than one matching package" )] MissingDependencySource { /// The name of the dependency that is missing a `source` field. @@ -2650,16 +2640,15 @@ fn each_element_on_its_line_array(elements: impl Iterator { /// The root nodes in the [`Lock`]. - roots: Vec<&'env DistributionId>, + roots: Vec<&'env PackageId>, /// The edges in the [`Lock`]. /// /// While the dependencies exist on the [`Lock`] directly, if `--invert` is enabled, the /// direction must be inverted when constructing the tree. - dependencies: FxHashMap<&'env DistributionId, Vec>>, + dependencies: FxHashMap<&'env PackageId, Vec>>, optional_dependencies: - FxHashMap<&'env DistributionId, FxHashMap>>>, - dev_dependencies: - FxHashMap<&'env DistributionId, FxHashMap>>>, + FxHashMap<&'env PackageId, FxHashMap>>>, + dev_dependencies: FxHashMap<&'env PackageId, FxHashMap>>>, /// Maximum display depth of the dependency tree depth: usize, /// Prune the given packages from the display of the dependency tree. @@ -2671,7 +2660,7 @@ pub struct TreeDisplay<'env> { } impl<'env> TreeDisplay<'env> { - /// Create a new [`DisplayDependencyGraph`] for the set of installed distributions. + /// Create a new [`DisplayDependencyGraph`] for the set of installed packages. pub fn new( lock: &'env Lock, markers: Option<&'env MarkerEnvironment>, @@ -2689,16 +2678,16 @@ impl<'env> TreeDisplay<'env> { let mut optional_dependencies: FxHashMap<_, FxHashMap<_, Vec<_>>> = FxHashMap::default(); let mut dev_dependencies: FxHashMap<_, FxHashMap<_, Vec<_>>> = FxHashMap::default(); - for distribution in &lock.distributions { - for dependency in &distribution.dependencies { + for packages in &lock.packages { + for dependency in &packages.dependencies { let parent = if invert { - &dependency.distribution_id + &dependency.package_id } else { - &distribution.id + &packages.id }; let child = if invert { Cow::Owned(Dependency { - distribution_id: distribution.id.clone(), + package_id: packages.id.clone(), extra: dependency.extra.clone(), marker: dependency.marker.clone(), }) @@ -2706,7 +2695,7 @@ impl<'env> TreeDisplay<'env> { Cow::Borrowed(dependency) }; - non_roots.insert(child.distribution_id.clone()); + non_roots.insert(child.package_id.clone()); // Skip dependencies that don't apply to the current environment. if let Some(environment_markers) = markers { @@ -2720,16 +2709,16 @@ impl<'env> TreeDisplay<'env> { dependencies.entry(parent).or_default().push(child); } - for (extra, dependencies) in &distribution.optional_dependencies { + for (extra, dependencies) in &packages.optional_dependencies { for dependency in dependencies { let parent = if invert { - &dependency.distribution_id + &dependency.package_id } else { - &distribution.id + &packages.id }; let child = if invert { Cow::Owned(Dependency { - distribution_id: distribution.id.clone(), + package_id: packages.id.clone(), extra: dependency.extra.clone(), marker: dependency.marker.clone(), }) @@ -2737,7 +2726,7 @@ impl<'env> TreeDisplay<'env> { Cow::Borrowed(dependency) }; - non_roots.insert(child.distribution_id.clone()); + non_roots.insert(child.package_id.clone()); // Skip dependencies that don't apply to the current environment. if let Some(environment_markers) = markers { @@ -2757,16 +2746,16 @@ impl<'env> TreeDisplay<'env> { } } - for (group, dependencies) in &distribution.dev_dependencies { + for (group, dependencies) in &packages.dev_dependencies { for dependency in dependencies { let parent = if invert { - &dependency.distribution_id + &dependency.package_id } else { - &distribution.id + &packages.id }; let child = if invert { Cow::Owned(Dependency { - distribution_id: distribution.id.clone(), + package_id: packages.id.clone(), extra: dependency.extra.clone(), marker: dependency.marker.clone(), }) @@ -2774,7 +2763,7 @@ impl<'env> TreeDisplay<'env> { Cow::Borrowed(dependency) }; - non_roots.insert(child.distribution_id.clone()); + non_roots.insert(child.package_id.clone()); // Skip dependencies that don't apply to the current environment. if let Some(environment_markers) = markers { @@ -2797,7 +2786,7 @@ impl<'env> TreeDisplay<'env> { // Compute the root nodes. let roots = lock - .distributions + .packages .iter() .map(|dist| &dist.id) .filter(|id| !non_roots.contains(*id)) @@ -2815,12 +2804,12 @@ impl<'env> TreeDisplay<'env> { } } - /// Perform a depth-first traversal of the given distribution and its dependencies. + /// Perform a depth-first traversal of the given package and its dependencies. fn visit( &'env self, node: Node<'env>, - visited: &mut FxHashMap<&'env DistributionId, Vec<&'env DistributionId>>, - path: &mut Vec<&'env DistributionId>, + visited: &mut FxHashMap<&'env PackageId, Vec<&'env PackageId>>, + path: &mut Vec<&'env PackageId>, ) -> Vec { // Short-circuit if the current path is longer than the provided depth. if path.len() > self.depth { @@ -2828,13 +2817,13 @@ impl<'env> TreeDisplay<'env> { } let line = { - let mut line = format!("{}", node.distribution_id().name); + let mut line = format!("{}", node.package_id().name); if let Some(extras) = node.extras().filter(|extras| !extras.is_empty()) { line.push_str(&format!("[{}]", extras.iter().join(","))); } - line.push_str(&format!(" v{}", node.distribution_id().version)); + line.push_str(&format!(" v{}", node.package_id().version)); match node { Node::Root(_) => line, @@ -2847,8 +2836,8 @@ impl<'env> TreeDisplay<'env> { // Skip the traversal if: // 1. The package is in the current traversal path (i.e., a dependency cycle). // 2. The package has been visited and de-duplication is enabled (default). - if let Some(requirements) = visited.get(node.distribution_id()) { - if !self.no_dedupe || path.contains(&node.distribution_id()) { + if let Some(requirements) = visited.get(node.package_id()) { + if !self.no_dedupe || path.contains(&node.package_id()) { return if requirements.is_empty() { vec![line] } else { @@ -2859,13 +2848,13 @@ impl<'env> TreeDisplay<'env> { let dependencies: Vec> = self .dependencies - .get(node.distribution_id()) + .get(node.package_id()) .into_iter() .flatten() .map(|dep| Node::Dependency(dep.as_ref())) .chain( self.optional_dependencies - .get(node.distribution_id()) + .get(node.package_id()) .into_iter() .flatten() .flat_map(|(extra, deps)| { @@ -2875,24 +2864,24 @@ impl<'env> TreeDisplay<'env> { ) .chain( self.dev_dependencies - .get(node.distribution_id()) + .get(node.package_id()) .into_iter() .flatten() .flat_map(|(group, deps)| { deps.iter().map(move |dep| Node::DevDependency(group, dep)) }), ) - .filter(|dep| !self.prune.contains(&dep.distribution_id().name)) + .filter(|dep| !self.prune.contains(&dep.package_id().name)) .collect::>(); let mut lines = vec![line]; // Keep track of the dependency path to avoid cycles. visited.insert( - node.distribution_id(), - dependencies.iter().map(Node::distribution_id).collect(), + node.package_id(), + dependencies.iter().map(Node::package_id).collect(), ); - path.push(node.distribution_id()); + path.push(node.package_id()); for (index, dep) in dependencies.iter().enumerate() { // For sub-visited packages, add the prefix to make the tree display user-friendly. @@ -2966,19 +2955,19 @@ impl<'env> TreeDisplay<'env> { #[derive(Debug, Copy, Clone)] enum Node<'env> { - Root(&'env DistributionId), + Root(&'env PackageId), Dependency(&'env Dependency), OptionalDependency(&'env ExtraName, &'env Dependency), DevDependency(&'env GroupName, &'env Dependency), } impl<'env> Node<'env> { - fn distribution_id(&self) -> &'env DistributionId { + fn package_id(&self) -> &'env PackageId { match self { Self::Root(id) => id, - Self::Dependency(dep) => &dep.distribution_id, - Self::OptionalDependency(_, dep) => &dep.distribution_id, - Self::DevDependency(_, dep) => &dep.distribution_id, + Self::Dependency(dep) => &dep.package_id, + Self::OptionalDependency(_, dep) => &dep.package_id, + Self::DevDependency(_, dep) => &dep.package_id, } } @@ -3024,19 +3013,19 @@ mod tests { let data = r#" version = 1 -[[distribution]] +[[package]] name = "a" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "b" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution.dependencies]] +[[package.dependencies]] name = "a" version = "0.1.0" "#; @@ -3049,19 +3038,19 @@ version = "0.1.0" let data = r#" version = 1 -[[distribution]] +[[package]] name = "a" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "b" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution.dependencies]] +[[package.dependencies]] name = "a" source = { registry = "https://pypi.org/simple" } "#; @@ -3074,19 +3063,19 @@ source = { registry = "https://pypi.org/simple" } let data = r#" version = 1 -[[distribution]] +[[package]] name = "a" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "b" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution.dependencies]] +[[package.dependencies]] name = "a" "#; let result: Result = toml::from_str(data); @@ -3098,25 +3087,25 @@ name = "a" let data = r#" version = 1 -[[distribution]] +[[package]] name = "a" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "a" version = "0.1.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "b" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution.dependencies]] +[[package.dependencies]] name = "a" version = "0.1.0" "#; @@ -3129,25 +3118,25 @@ version = "0.1.0" let data = r#" version = 1 -[[distribution]] +[[package]] name = "a" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "a" version = "0.1.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "b" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution.dependencies]] +[[package.dependencies]] name = "a" source = { registry = "https://pypi.org/simple" } "#; @@ -3160,25 +3149,25 @@ source = { registry = "https://pypi.org/simple" } let data = r#" version = 1 -[[distribution]] +[[package]] name = "a" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "a" version = "0.1.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution]] +[[package]] name = "b" version = "0.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://example.com", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 0 } -[[distribution.dependencies]] +[[package.dependencies]] name = "a" "#; let result: Result = toml::from_str(data); @@ -3190,7 +3179,7 @@ name = "a" let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -3205,7 +3194,7 @@ wheels = [{ url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4 let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -3220,7 +3209,7 @@ wheels = [{ url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4 let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { path = "file:///foo/bar" } @@ -3235,7 +3224,7 @@ wheels = [{ url = "file:///foo/bar/anyio-4.3.0-py3-none-any.whl", hash = "sha256 let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { url = "https://burntsushi.net" } @@ -3249,7 +3238,7 @@ source = { url = "https://burntsushi.net" } let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { url = "https://burntsushi.net", subdirectory = "wat/foo/bar" } @@ -3263,7 +3252,7 @@ source = { url = "https://burntsushi.net", subdirectory = "wat/foo/bar" } let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { directory = "path/to/dir" } @@ -3277,7 +3266,7 @@ source = { directory = "path/to/dir" } let data = r#" version = 1 -[[distribution]] +[[package]] name = "anyio" version = "4.3.0" source = { editable = "path/to/dir" } diff --git a/crates/uv-resolver/src/preferences.rs b/crates/uv-resolver/src/preferences.rs index 2592b1e4a..1b355803d 100644 --- a/crates/uv-resolver/src/preferences.rs +++ b/crates/uv-resolver/src/preferences.rs @@ -85,12 +85,12 @@ impl Preference { } /// Create a [`Preference`] from a locked distribution. - pub fn from_lock(dist: &crate::lock::Distribution) -> Self { + pub fn from_lock(package: &crate::lock::Package) -> Self { Self { - name: dist.id.name.clone(), - version: dist.id.version.clone(), + name: package.id.name.clone(), + version: package.id.version.clone(), marker: None, - fork_markers: dist.fork_markers().cloned(), + fork_markers: package.fork_markers().cloned(), hashes: Vec::new(), } } diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_missing.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_missing.snap index c3dfb83b6..2ad8d3067 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_missing.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_missing.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -58,7 +58,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_present.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_present.snap index 28584ece1..785129e15 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_present.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_optional_present.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -65,7 +65,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_required_present.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_required_present.snap index 5e6faf21e..d3a40abe8 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_required_present.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__hash_required_present.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -63,7 +63,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_ambiguous.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_ambiguous.snap index e7b0acc3d..3c8b8a772 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_ambiguous.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_ambiguous.snap @@ -6,7 +6,7 @@ Err( Error { inner: Error { inner: TomlError { - message: "dependency a has missing `source` field but has more than one matching distribution", + message: "dependency a has missing `source` field but has more than one matching package", raw: None, keys: [], span: None, diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_unambiguous.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_unambiguous.snap index f9081f613..c86022c9f 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_unambiguous.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_unambiguous.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "a", ), @@ -51,8 +51,8 @@ Ok( optional_dependencies: {}, dev_dependencies: {}, }, - Distribution { - id: DistributionId { + Package { + id: PackageId { name: PackageName( "b", ), @@ -87,7 +87,7 @@ Ok( fork_markers: None, dependencies: [ Dependency { - distribution_id: DistributionId { + package_id: PackageId { name: PackageName( "a", ), @@ -107,7 +107,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "a", ), @@ -118,7 +118,7 @@ Ok( ), ), }: 0, - DistributionId { + PackageId { name: PackageName( "b", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_ambiguous.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_ambiguous.snap index 7ce965a3e..a7ef77084 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_ambiguous.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_ambiguous.snap @@ -6,7 +6,7 @@ Err( Error { inner: Error { inner: TomlError { - message: "dependency a has missing `version` field but has more than one matching distribution", + message: "dependency a has missing `version` field but has more than one matching package", raw: None, keys: [], span: None, diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_unambiguous.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_unambiguous.snap index f9081f613..c86022c9f 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_unambiguous.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_source_version_unambiguous.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "a", ), @@ -51,8 +51,8 @@ Ok( optional_dependencies: {}, dev_dependencies: {}, }, - Distribution { - id: DistributionId { + Package { + id: PackageId { name: PackageName( "b", ), @@ -87,7 +87,7 @@ Ok( fork_markers: None, dependencies: [ Dependency { - distribution_id: DistributionId { + package_id: PackageId { name: PackageName( "a", ), @@ -107,7 +107,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "a", ), @@ -118,7 +118,7 @@ Ok( ), ), }: 0, - DistributionId { + PackageId { name: PackageName( "b", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_ambiguous.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_ambiguous.snap index 7ce965a3e..a7ef77084 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_ambiguous.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_ambiguous.snap @@ -6,7 +6,7 @@ Err( Error { inner: Error { inner: TomlError { - message: "dependency a has missing `version` field but has more than one matching distribution", + message: "dependency a has missing `version` field but has more than one matching package", raw: None, keys: [], span: None, diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_unambiguous.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_unambiguous.snap index f9081f613..c86022c9f 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_unambiguous.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__missing_dependency_version_unambiguous.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "a", ), @@ -51,8 +51,8 @@ Ok( optional_dependencies: {}, dev_dependencies: {}, }, - Distribution { - id: DistributionId { + Package { + id: PackageId { name: PackageName( "b", ), @@ -87,7 +87,7 @@ Ok( fork_markers: None, dependencies: [ Dependency { - distribution_id: DistributionId { + package_id: PackageId { name: PackageName( "a", ), @@ -107,7 +107,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "a", ), @@ -118,7 +118,7 @@ Ok( ), ), }: 0, - DistributionId { + PackageId { name: PackageName( "b", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_has_subdir.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_has_subdir.snap index d94a1e6fb..456e043b9 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_has_subdir.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_has_subdir.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -39,7 +39,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_no_subdir.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_no_subdir.snap index 3195fd5b5..adb39e6cb 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_no_subdir.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_direct_no_subdir.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -37,7 +37,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_directory.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_directory.snap index 6e500f547..e95fad836 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_directory.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_directory.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -32,7 +32,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_editable.snap b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_editable.snap index f9405b6f1..56cc6f6d5 100644 --- a/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_editable.snap +++ b/crates/uv-resolver/src/snapshots/uv_resolver__lock__tests__source_editable.snap @@ -12,9 +12,9 @@ Ok( prerelease_mode: IfNecessaryOrExplicit, exclude_newer: None, }, - distributions: [ - Distribution { - id: DistributionId { + packages: [ + Package { + id: PackageId { name: PackageName( "anyio", ), @@ -32,7 +32,7 @@ Ok( }, ], by_id: { - DistributionId { + PackageId { name: PackageName( "anyio", ), diff --git a/crates/uv/src/commands/project/add.rs b/crates/uv/src/commands/project/add.rs index 0942a3055..3b0c97f80 100644 --- a/crates/uv/src/commands/project/add.rs +++ b/crates/uv/src/commands/project/add.rs @@ -296,8 +296,8 @@ pub(crate) async fn add( if !raw_sources { // Extract the minimum-supported version for each dependency. let mut minimum_version = - FxHashMap::with_capacity_and_hasher(lock.lock.distributions().len(), FxBuildHasher); - for dist in lock.lock.distributions() { + FxHashMap::with_capacity_and_hasher(lock.lock.packages().len(), FxBuildHasher); + for dist in lock.lock.packages() { let name = dist.name(); let version = dist.version(); match minimum_version.entry(name) { diff --git a/crates/uv/src/commands/project/lock.rs b/crates/uv/src/commands/project/lock.rs index 0e9a9c7dd..926aef8cf 100644 --- a/crates/uv/src/commands/project/lock.rs +++ b/crates/uv/src/commands/project/lock.rs @@ -598,37 +598,34 @@ pub(crate) async fn read(workspace: &Workspace) -> Result, ProjectE /// Reports on the versions that were upgraded in the new lockfile. fn report_upgrades(existing_lock: &Lock, new_lock: &Lock, printer: Printer) -> anyhow::Result<()> { - let existing_distributions: FxHashMap<&PackageName, BTreeSet<&Version>> = - existing_lock.distributions().iter().fold( - FxHashMap::with_capacity_and_hasher(existing_lock.distributions().len(), FxBuildHasher), - |mut acc, distribution| { - acc.entry(distribution.name()) + let existing_packages: FxHashMap<&PackageName, BTreeSet<&Version>> = + existing_lock.packages().iter().fold( + FxHashMap::with_capacity_and_hasher(existing_lock.packages().len(), FxBuildHasher), + |mut acc, package| { + acc.entry(package.name()) .or_default() - .insert(distribution.version()); + .insert(package.version()); acc }, ); let new_distributions: FxHashMap<&PackageName, BTreeSet<&Version>> = - new_lock.distributions().iter().fold( - FxHashMap::with_capacity_and_hasher(new_lock.distributions().len(), FxBuildHasher), - |mut acc, distribution| { - acc.entry(distribution.name()) + new_lock.packages().iter().fold( + FxHashMap::with_capacity_and_hasher(new_lock.packages().len(), FxBuildHasher), + |mut acc, package| { + acc.entry(package.name()) .or_default() - .insert(distribution.version()); + .insert(package.version()); acc }, ); - for name in existing_distributions + for name in existing_packages .keys() .chain(new_distributions.keys()) .collect::>() { - match ( - existing_distributions.get(name), - new_distributions.get(name), - ) { + match (existing_packages.get(name), new_distributions.get(name)) { (Some(existing_versions), Some(new_versions)) => { if existing_versions != new_versions { let existing_versions = existing_versions diff --git a/crates/uv/tests/branching_urls.rs b/crates/uv/tests/branching_urls.rs index 3203e6807..2481b3207 100644 --- a/crates/uv/tests/branching_urls.rs +++ b/crates/uv/tests/branching_urls.rs @@ -216,7 +216,7 @@ fn root_package_splits_transitive_too() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "a" version = "0.1.0" source = { editable = "." } @@ -226,7 +226,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { name = "b" }, ] - [[distribution]] + [[package]] name = "anyio" version = "4.2.0" source = { registry = "https://pypi.org/simple" } @@ -242,7 +242,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/bf/cd/d6d9bb1dadf73e7af02d18225cbd2c93f8552e13130484f1c8dcfece292b/anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee", size = 85481 }, ] - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -258,7 +258,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, ] - [[distribution]] + [[package]] name = "b" version = "0.1.0" source = { directory = "b" } @@ -267,7 +267,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { name = "b2", marker = "python_version >= '3.12'" }, ] - [[distribution]] + [[package]] name = "b1" version = "0.1.0" source = { directory = "../b1" } @@ -275,7 +275,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { name = "iniconfig", version = "1.1.1", source = { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl" }, marker = "python_version < '3.12'" }, ] - [[distribution]] + [[package]] name = "b2" version = "0.1.0" source = { directory = "../b2" } @@ -283,7 +283,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { name = "iniconfig", version = "2.0.0", source = { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl" }, marker = "python_version >= '3.12'" }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -292,7 +292,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl" } @@ -303,7 +303,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3" }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl" } @@ -314,7 +314,7 @@ fn root_package_splits_transitive_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -392,7 +392,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "a" version = "0.1.0" source = { editable = "." } @@ -403,7 +403,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { name = "b2", marker = "python_version >= '3.12'" }, ] - [[distribution]] + [[package]] name = "anyio" version = "4.2.0" source = { registry = "https://pypi.org/simple" } @@ -419,7 +419,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/bf/cd/d6d9bb1dadf73e7af02d18225cbd2c93f8552e13130484f1c8dcfece292b/anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee", size = 85481 }, ] - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -435,7 +435,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, ] - [[distribution]] + [[package]] name = "b1" version = "0.1.0" source = { directory = "b1" } @@ -443,7 +443,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { name = "iniconfig", version = "1.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_version < '3.12'" }, ] - [[distribution]] + [[package]] name = "b2" version = "0.1.0" source = { directory = "b2" } @@ -451,7 +451,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { name = "iniconfig", version = "2.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_version >= '3.12'" }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -460,7 +460,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { registry = "https://pypi.org/simple" } @@ -472,7 +472,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", size = 4990 }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -484,7 +484,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -539,7 +539,7 @@ fn branching_between_registry_and_direct_url() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "a" version = "0.1.0" source = { editable = "." } @@ -548,7 +548,7 @@ fn branching_between_registry_and_direct_url() -> Result<()> { { name = "iniconfig", version = "2.0.0", source = { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl" }, marker = "python_version >= '3.12'" }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { registry = "https://pypi.org/simple" } @@ -560,7 +560,7 @@ fn branching_between_registry_and_direct_url() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", size = 4990 }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl" } @@ -618,7 +618,7 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "a" version = "0.1.0" source = { editable = "." } @@ -627,7 +627,7 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> { { name = "iniconfig", version = "2.0.0", source = { git = "https://github.com/pytest-dev/iniconfig?rev=93f5930e668c0d1ddf4597e38dd0dea4e2665e7a#93f5930e668c0d1ddf4597e38dd0dea4e2665e7a" }, marker = "python_version >= '3.12'" }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl" } @@ -638,7 +638,7 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3" }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { git = "https://github.com/pytest-dev/iniconfig?rev=93f5930e668c0d1ddf4597e38dd0dea4e2665e7a#93f5930e668c0d1ddf4597e38dd0dea4e2665e7a" } @@ -735,7 +735,7 @@ fn dont_pre_visit_url_packages() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "a" version = "0.1.0" source = { editable = "." } @@ -744,7 +744,7 @@ fn dont_pre_visit_url_packages() -> Result<()> { { name = "c" }, ] - [[distribution]] + [[package]] name = "b" version = "0.1.0" source = { directory = "b" } @@ -752,7 +752,7 @@ fn dont_pre_visit_url_packages() -> Result<()> { { name = "c" }, ] - [[distribution]] + [[package]] name = "c" version = "0.1.0" source = { directory = "../c" } diff --git a/crates/uv/tests/edit.rs b/crates/uv/tests/edit.rs index 9dcf30e8f..80156f857 100644 --- a/crates/uv/tests/edit.rs +++ b/crates/uv/tests/edit.rs @@ -73,7 +73,7 @@ fn add_registry() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -86,7 +86,7 @@ fn add_registry() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -95,7 +95,7 @@ fn add_registry() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -103,7 +103,7 @@ fn add_registry() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -229,7 +229,7 @@ fn add_git() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -242,7 +242,7 @@ fn add_git() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -251,7 +251,7 @@ fn add_git() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -260,7 +260,7 @@ fn add_git() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -269,7 +269,7 @@ fn add_git() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } @@ -438,7 +438,7 @@ fn add_git_raw() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -451,7 +451,7 @@ fn add_git_raw() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -460,7 +460,7 @@ fn add_git_raw() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -469,7 +469,7 @@ fn add_git_raw() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -478,7 +478,7 @@ fn add_git_raw() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?rev=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } @@ -655,7 +655,7 @@ fn add_unnamed() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -663,7 +663,7 @@ fn add_unnamed() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } @@ -750,7 +750,7 @@ fn add_remove_dev() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -763,7 +763,7 @@ fn add_remove_dev() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -772,17 +772,17 @@ fn add_remove_dev() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } - [distribution.dev-dependencies] + [package.dev-dependencies] dev = [ { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -868,7 +868,7 @@ fn add_remove_dev() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -955,7 +955,7 @@ fn add_remove_optional() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -968,7 +968,7 @@ fn add_remove_optional() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -977,17 +977,17 @@ fn add_remove_optional() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } - [distribution.optional-dependencies] + [package.optional-dependencies] io = [ { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -1074,7 +1074,7 @@ fn add_remove_optional() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1200,7 +1200,7 @@ fn add_remove_workspace() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "child1" version = "0.1.0" source = { editable = "child1" } @@ -1208,7 +1208,7 @@ fn add_remove_workspace() -> Result<()> { { name = "child2" }, ] - [[distribution]] + [[package]] name = "child2" version = "0.1.0" source = { editable = "child2" } @@ -1275,12 +1275,12 @@ fn add_remove_workspace() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "child1" version = "0.1.0" source = { editable = "child1" } - [[distribution]] + [[package]] name = "child2" version = "0.1.0" source = { editable = "child2" } @@ -1386,7 +1386,7 @@ fn add_workspace_editable() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "child1" version = "0.1.0" source = { editable = "child1" } @@ -1394,7 +1394,7 @@ fn add_workspace_editable() -> Result<()> { { name = "child2" }, ] - [[distribution]] + [[package]] name = "child2" version = "0.1.0" source = { editable = "child2" } @@ -1584,7 +1584,7 @@ fn update() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "certifi" version = "2024.2.2" source = { registry = "https://pypi.org/simple" } @@ -1593,7 +1593,7 @@ fn update() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1", size = 163774 }, ] - [[distribution]] + [[package]] name = "chardet" version = "5.2.0" source = { registry = "https://pypi.org/simple" } @@ -1602,7 +1602,7 @@ fn update() -> Result<()> { { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385 }, ] - [[distribution]] + [[package]] name = "charset-normalizer" version = "3.3.2" source = { registry = "https://pypi.org/simple" } @@ -1626,7 +1626,7 @@ fn update() -> Result<()> { { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -1635,7 +1635,7 @@ fn update() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1643,7 +1643,7 @@ fn update() -> Result<()> { { name = "requests", extra = ["socks", "use-chardet-on-py3"] }, ] - [[distribution]] + [[package]] name = "pysocks" version = "1.7.1" source = { registry = "https://pypi.org/simple" } @@ -1652,7 +1652,7 @@ fn update() -> Result<()> { { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 }, ] - [[distribution]] + [[package]] name = "requests" version = "2.32.3" source = { git = "https://github.com/psf/requests?tag=v2.32.3#0e322af87745eff34caffe4df68456ebc20d9068" } @@ -1663,7 +1663,7 @@ fn update() -> Result<()> { { name = "urllib3" }, ] - [distribution.optional-dependencies] + [package.optional-dependencies] socks = [ { name = "pysocks" }, ] @@ -1671,7 +1671,7 @@ fn update() -> Result<()> { { name = "chardet" }, ] - [[distribution]] + [[package]] name = "urllib3" version = "2.2.1" source = { registry = "https://pypi.org/simple" } @@ -1854,7 +1854,7 @@ fn add_no_clean() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -1863,7 +1863,7 @@ fn add_no_clean() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1988,7 +1988,7 @@ fn remove_registry() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2609,7 +2609,7 @@ fn add_lower_bound_optional() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -2622,7 +2622,7 @@ fn add_lower_bound_optional() -> Result<()> { { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -2631,17 +2631,17 @@ fn add_lower_bound_optional() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } - [distribution.optional-dependencies] + [package.optional-dependencies] io = [ { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -2713,7 +2713,7 @@ fn add_lower_bound_local() -> Result<()> { version = 1 requires-python = ">=3.12" - [[distribution]] + [[package]] name = "local-simple-a" version = "1.2.3+foo" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2722,7 +2722,7 @@ fn add_lower_bound_local() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/local_simple_a-1.2.3+foo-py3-none-any.whl", hash = "sha256:6f30e2e709b3e171cd734bb58705229a582587c29e0a7041227435583c7224cc" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2815,7 +2815,7 @@ fn add_virtual() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } diff --git a/crates/uv/tests/lock.rs b/crates/uv/tests/lock.rs index ad679a8a7..e5ad0e113 100644 --- a/crates/uv/tests/lock.rs +++ b/crates/uv/tests/lock.rs @@ -70,7 +70,7 @@ fn lock_wheel_registry() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -83,7 +83,7 @@ fn lock_wheel_registry() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -92,7 +92,7 @@ fn lock_wheel_registry() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -100,7 +100,7 @@ fn lock_wheel_registry() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -180,7 +180,7 @@ fn lock_sdist_registry() -> Result<()> { version = 1 requires-python = ">=3.12" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -188,7 +188,7 @@ fn lock_sdist_registry() -> Result<()> { { name = "source-distribution" }, ] - [[distribution]] + [[package]] name = "source-distribution" version = "0.0.1" source = { registry = "https://pypi.org/simple" } @@ -248,15 +248,15 @@ fn lock_sdist_git() -> Result<()> { deterministic! { context => uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - warning: `uv.sources` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + warning: `uv.sources` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); @@ -265,25 +265,25 @@ fn lock_sdist_git() -> Result<()> { }, { assert_snapshot!( lock, @r###" - version = 1 - requires-python = ">=3.12" + version = 1 + requires-python = ">=3.12" - [options] - exclude-newer = "2024-03-25 00:00:00 UTC" + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] - name = "project" - version = "0.1.0" - source = { editable = "." } - dependencies = [ - { name = "uv-public-pypackage" }, - ] + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "uv-public-pypackage" }, + ] - [[distribution]] - name = "uv-public-pypackage" - version = "0.1.0" - source = { git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } - "### + [[package]] + name = "uv-public-pypackage" + version = "0.1.0" + source = { git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } + "### ); }); } @@ -343,15 +343,15 @@ fn lock_sdist_git() -> Result<()> { deterministic! { context => uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - warning: `uv.sources` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + warning: `uv.sources` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); @@ -366,7 +366,7 @@ fn lock_sdist_git() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -374,7 +374,7 @@ fn lock_sdist_git() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?rev=0dacfd662c64cb4ceb16e6cf65a157a8b715b979#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } @@ -400,15 +400,15 @@ fn lock_sdist_git() -> Result<()> { deterministic! { context => uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - warning: `uv.sources` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + warning: `uv.sources` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); @@ -423,7 +423,7 @@ fn lock_sdist_git() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -431,7 +431,7 @@ fn lock_sdist_git() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?rev=b270df1a2fb5d012294e9aaf05e7e0bab1e6a389#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } @@ -457,15 +457,15 @@ fn lock_sdist_git() -> Result<()> { deterministic! { context => uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - warning: `uv.sources` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + warning: `uv.sources` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); @@ -480,7 +480,7 @@ fn lock_sdist_git() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -488,7 +488,7 @@ fn lock_sdist_git() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.2#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } @@ -518,44 +518,44 @@ fn lock_sdist_git_pep508() -> Result<()> { )?; deterministic! { context => - uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + uv_snapshot!(context.filters(), context.lock(), @r###" + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); - let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); + let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); - insta::with_settings!({ - filters => context.filters(), - }, { - assert_snapshot!( - lock, @r###" - version = 1 - requires-python = ">=3.12" + insta::with_settings!({ + filters => context.filters(), + }, { + assert_snapshot!( + lock, @r###" + version = 1 + requires-python = ">=3.12" - [options] - exclude-newer = "2024-03-25 00:00:00 UTC" + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] - name = "project" - version = "0.1.0" - source = { editable = "." } - dependencies = [ - { name = "uv-public-pypackage" }, - ] + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "uv-public-pypackage" }, + ] - [[distribution]] - name = "uv-public-pypackage" - version = "0.1.0" - source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } - "### - ); - }); + [[package]] + name = "uv-public-pypackage" + version = "0.1.0" + source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=0.0.1#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } + "### + ); + }); } // Re-run with `--locked`. @@ -582,44 +582,44 @@ fn lock_sdist_git_pep508() -> Result<()> { )?; deterministic! { context => - uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + uv_snapshot!(context.filters(), context.lock(), @r###" + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); - let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); + let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); - insta::with_settings!({ - filters => context.filters(), - }, { - assert_snapshot!( - lock, @r###" - version = 1 - requires-python = ">=3.12" + insta::with_settings!({ + filters => context.filters(), + }, { + assert_snapshot!( + lock, @r###" + version = 1 + requires-python = ">=3.12" - [options] - exclude-newer = "2024-03-25 00:00:00 UTC" + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] - name = "project" - version = "0.1.0" - source = { editable = "." } - dependencies = [ - { name = "uv-public-pypackage" }, - ] + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "uv-public-pypackage" }, + ] - [[distribution]] - name = "uv-public-pypackage" - version = "0.1.0" - source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=0dacfd662c64cb4ceb16e6cf65a157a8b715b979#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } - "### - ); - }); + [[package]] + name = "uv-public-pypackage" + version = "0.1.0" + source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=0dacfd662c64cb4ceb16e6cf65a157a8b715b979#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } + "### + ); + }); } // Re-lock with a different commit. @@ -635,44 +635,44 @@ fn lock_sdist_git_pep508() -> Result<()> { )?; deterministic! { context => - uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + uv_snapshot!(context.filters(), context.lock(), @r###" + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); - let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); + let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); - insta::with_settings!({ - filters => context.filters(), - }, { - assert_snapshot!( - lock, @r###" - version = 1 - requires-python = ">=3.12" + insta::with_settings!({ + filters => context.filters(), + }, { + assert_snapshot!( + lock, @r###" + version = 1 + requires-python = ">=3.12" - [options] - exclude-newer = "2024-03-25 00:00:00 UTC" + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] - name = "project" - version = "0.1.0" - source = { editable = "." } - dependencies = [ - { name = "uv-public-pypackage" }, - ] + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "uv-public-pypackage" }, + ] - [[distribution]] - name = "uv-public-pypackage" - version = "0.1.0" - source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=b270df1a2fb5d012294e9aaf05e7e0bab1e6a389#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } - "### - ); - }); + [[package]] + name = "uv-public-pypackage" + version = "0.1.0" + source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=b270df1a2fb5d012294e9aaf05e7e0bab1e6a389#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } + "### + ); + }); } // Re-lock with a different tag (which matches the new commit). @@ -688,44 +688,44 @@ fn lock_sdist_git_pep508() -> Result<()> { )?; deterministic! { context => - uv_snapshot!(context.filters(), context.lock(), @r###" - success: true - exit_code: 0 - ----- stdout ----- + uv_snapshot!(context.filters(), context.lock(), @r###" + success: true + exit_code: 0 + ----- stdout ----- - ----- stderr ----- - warning: `uv lock` is experimental and may change without warning - Resolved 2 packages in [TIME] - "###); + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + Resolved 2 packages in [TIME] + "###); - let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); + let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); - insta::with_settings!({ - filters => context.filters(), - }, { - assert_snapshot!( - lock, @r###" - version = 1 - requires-python = ">=3.12" + insta::with_settings!({ + filters => context.filters(), + }, { + assert_snapshot!( + lock, @r###" + version = 1 + requires-python = ">=3.12" - [options] - exclude-newer = "2024-03-25 00:00:00 UTC" + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] - name = "project" - version = "0.1.0" - source = { editable = "." } - dependencies = [ - { name = "uv-public-pypackage" }, - ] + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "uv-public-pypackage" }, + ] - [[distribution]] - name = "uv-public-pypackage" - version = "0.1.0" - source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=0.0.2#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } - "### - ); - }); + [[package]] + name = "uv-public-pypackage" + version = "0.1.0" + source = { git = "https://github.com/astral-test/uv-public-pypackage.git?rev=0.0.2#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } + "### + ); + }); } Ok(()) @@ -771,7 +771,7 @@ fn lock_wheel_url() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl" } @@ -783,7 +783,7 @@ fn lock_wheel_url() -> Result<()> { { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8" }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -792,7 +792,7 @@ fn lock_wheel_url() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -800,7 +800,7 @@ fn lock_wheel_url() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -883,7 +883,7 @@ fn lock_sdist_url() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { url = "https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz" } @@ -893,7 +893,7 @@ fn lock_sdist_url() -> Result<()> { ] sdist = { url = "https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6" } - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -902,7 +902,7 @@ fn lock_sdist_url() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -910,7 +910,7 @@ fn lock_sdist_url() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -996,7 +996,7 @@ fn lock_project_extra() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -1009,7 +1009,7 @@ fn lock_project_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -1018,7 +1018,7 @@ fn lock_project_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -1027,7 +1027,7 @@ fn lock_project_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1035,12 +1035,12 @@ fn lock_project_extra() -> Result<()> { { name = "anyio" }, ] - [distribution.optional-dependencies] + [package.optional-dependencies] test = [ { name = "iniconfig" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -1224,7 +1224,7 @@ fn lock_dependency_extra() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "blinker" version = "1.7.0" source = { registry = "https://pypi.org/simple" } @@ -1233,7 +1233,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9", size = 13068 }, ] - [[distribution]] + [[package]] name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } @@ -1245,7 +1245,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, ] - [[distribution]] + [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } @@ -1254,7 +1254,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] - [[distribution]] + [[package]] name = "flask" version = "3.0.2" source = { registry = "https://pypi.org/simple" } @@ -1270,12 +1270,12 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl", hash = "sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e", size = 101300 }, ] - [distribution.optional-dependencies] + [package.optional-dependencies] dotenv = [ { name = "python-dotenv" }, ] - [[distribution]] + [[package]] name = "itsdangerous" version = "2.1.2" source = { registry = "https://pypi.org/simple" } @@ -1284,7 +1284,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44", size = 15749 }, ] - [[distribution]] + [[package]] name = "jinja2" version = "3.1.3" source = { registry = "https://pypi.org/simple" } @@ -1296,7 +1296,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa", size = 133236 }, ] - [[distribution]] + [[package]] name = "markupsafe" version = "2.1.5" source = { registry = "https://pypi.org/simple" } @@ -1314,7 +1314,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1322,7 +1322,7 @@ fn lock_dependency_extra() -> Result<()> { { name = "flask", extra = ["dotenv"] }, ] - [[distribution]] + [[package]] name = "python-dotenv" version = "1.0.1" source = { registry = "https://pypi.org/simple" } @@ -1331,7 +1331,7 @@ fn lock_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, ] - [[distribution]] + [[package]] name = "werkzeug" version = "3.0.1" source = { registry = "https://pypi.org/simple" } @@ -1424,7 +1424,7 @@ fn lock_conditional_dependency_extra() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "certifi" version = "2024.2.2" source = { registry = "https://pypi.org/simple" } @@ -1433,7 +1433,7 @@ fn lock_conditional_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1", size = 163774 }, ] - [[distribution]] + [[package]] name = "charset-normalizer" version = "3.3.2" source = { registry = "https://pypi.org/simple" } @@ -1530,7 +1530,7 @@ fn lock_conditional_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -1539,7 +1539,7 @@ fn lock_conditional_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1548,7 +1548,7 @@ fn lock_conditional_dependency_extra() -> Result<()> { { name = "requests", extra = ["socks"], marker = "python_version < '3.10'" }, ] - [[distribution]] + [[package]] name = "pysocks" version = "1.7.1" source = { registry = "https://pypi.org/simple" } @@ -1557,7 +1557,7 @@ fn lock_conditional_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 }, ] - [[distribution]] + [[package]] name = "requests" version = "2.31.0" source = { registry = "https://pypi.org/simple" } @@ -1572,12 +1572,12 @@ fn lock_conditional_dependency_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574 }, ] - [distribution.optional-dependencies] + [package.optional-dependencies] socks = [ { name = "pysocks" }, ] - [[distribution]] + [[package]] name = "urllib3" version = "2.0.7" source = { registry = "https://pypi.org/simple" } @@ -1699,7 +1699,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "blinker" version = "1.7.0" source = { registry = "https://pypi.org/simple" } @@ -1708,7 +1708,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9", size = 13068 }, ] - [[distribution]] + [[package]] name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } @@ -1720,7 +1720,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, ] - [[distribution]] + [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } @@ -1729,7 +1729,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] - [[distribution]] + [[package]] name = "flask" version = "3.0.2" source = { registry = "https://pypi.org/simple" } @@ -1745,7 +1745,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl", hash = "sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e", size = 101300 }, ] - [[distribution]] + [[package]] name = "itsdangerous" version = "2.1.2" source = { registry = "https://pypi.org/simple" } @@ -1754,7 +1754,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44", size = 15749 }, ] - [[distribution]] + [[package]] name = "jinja2" version = "3.1.3" source = { registry = "https://pypi.org/simple" } @@ -1766,7 +1766,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa", size = 133236 }, ] - [[distribution]] + [[package]] name = "markupsafe" version = "2.1.5" source = { registry = "https://pypi.org/simple" } @@ -1784,7 +1784,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1792,7 +1792,7 @@ fn lock_dependency_non_existent_extra() -> Result<()> { { name = "flask" }, ] - [[distribution]] + [[package]] name = "werkzeug" version = "3.0.1" source = { registry = "https://pypi.org/simple" } @@ -1883,7 +1883,7 @@ fn lock_upgrade_log() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -1892,13 +1892,13 @@ fn lock_upgrade_log() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "markupsafe" version = "1.1.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", size = 19151 } - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1961,7 +1961,7 @@ fn lock_upgrade_log() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "markupsafe" version = "2.1.5" source = { registry = "https://pypi.org/simple" } @@ -1979,7 +1979,7 @@ fn lock_upgrade_log() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1988,7 +1988,7 @@ fn lock_upgrade_log() -> Result<()> { { name = "typing-extensions" }, ] - [[distribution]] + [[package]] name = "typing-extensions" version = "4.10.0" source = { registry = "https://pypi.org/simple" } @@ -2048,7 +2048,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "markupsafe" version = "1.1.1" source = { registry = "https://pypi.org/simple" } @@ -2057,7 +2057,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> { ] sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", size = 19151 } - [[distribution]] + [[package]] name = "markupsafe" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -2066,7 +2066,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> { ] sdist = { url = "https://files.pythonhosted.org/packages/67/6a/5b3ed5c122e20c33d2562df06faf895a6b91b0a6b96a4626440ffe1d5c8e/MarkupSafe-2.0.0.tar.gz", hash = "sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527", size = 18466 } - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2130,7 +2130,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "markupsafe" version = "2.1.5" source = { registry = "https://pypi.org/simple" } @@ -2148,7 +2148,7 @@ fn lock_upgrade_log_multi_version() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2202,7 +2202,7 @@ fn lock_preference() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { registry = "https://pypi.org/simple" } @@ -2211,7 +2211,7 @@ fn lock_preference() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", size = 4990 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2260,7 +2260,7 @@ fn lock_preference() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { registry = "https://pypi.org/simple" } @@ -2269,7 +2269,7 @@ fn lock_preference() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", size = 4990 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2304,7 +2304,7 @@ fn lock_preference() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -2313,7 +2313,7 @@ fn lock_preference() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2369,7 +2369,7 @@ fn lock_git_sha() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2377,7 +2377,7 @@ fn lock_git_sha() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?rev=0dacfd662c64cb4ceb16e6cf65a157a8b715b979#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } @@ -2455,7 +2455,7 @@ fn lock_git_sha() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2463,7 +2463,7 @@ fn lock_git_sha() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?rev=main#0dacfd662c64cb4ceb16e6cf65a157a8b715b979" } @@ -2498,7 +2498,7 @@ fn lock_git_sha() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2506,7 +2506,7 @@ fn lock_git_sha() -> Result<()> { { name = "uv-public-pypackage" }, ] - [[distribution]] + [[package]] name = "uv-public-pypackage" version = "0.1.0" source = { git = "https://github.com/astral-test/uv-public-pypackage?rev=main#b270df1a2fb5d012294e9aaf05e7e0bab1e6a389" } @@ -2599,7 +2599,7 @@ fn lock_requires_python() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "attrs" version = "23.2.0" source = { registry = "https://pypi.org/simple" } @@ -2611,7 +2611,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, ] - [[distribution]] + [[package]] name = "cattrs" version = "23.1.2" source = { registry = "https://pypi.org/simple" } @@ -2625,7 +2625,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3a/ba/05df14efaa0624fac6b1510e87f5ce446208d2f6ce50270a89b6268aebfe/cattrs-23.1.2-py3-none-any.whl", hash = "sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4", size = 50845 }, ] - [[distribution]] + [[package]] name = "exceptiongroup" version = "1.2.0" source = { registry = "https://pypi.org/simple" } @@ -2634,7 +2634,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/b8/9a/5028fd52db10e600f1c4674441b968cf2ea4959085bfb5b99fb1250e5f68/exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14", size = 16210 }, ] - [[distribution]] + [[package]] name = "importlib-metadata" version = "6.7.0" source = { registry = "https://pypi.org/simple" } @@ -2647,7 +2647,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5", size = 22934 }, ] - [[distribution]] + [[package]] name = "lsprotocol" version = "2023.0.1" source = { registry = "https://pypi.org/simple" } @@ -2660,7 +2660,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/8d/37/2351e48cb3309673492d3a8c59d407b75fb6630e560eb27ecd4da03adc9a/lsprotocol-2023.0.1-py3-none-any.whl", hash = "sha256:c75223c9e4af2f24272b14c6375787438279369236cd568f596d4951052a60f2", size = 70826 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2668,7 +2668,7 @@ fn lock_requires_python() -> Result<()> { { name = "pygls" }, ] - [[distribution]] + [[package]] name = "pygls" version = "1.0.1" source = { registry = "https://pypi.org/simple" } @@ -2681,7 +2681,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/da/9b/4fd77a060068f2f3f46f97ed6ba8762c5a73f11ef0c196cfd34f3a9be878/pygls-1.0.1-py3-none-any.whl", hash = "sha256:adacc96da77598c70f46acfdfd1481d3da90cd54f639f7eee52eb6e4dbd57b55", size = 40367 }, ] - [[distribution]] + [[package]] name = "typeguard" version = "2.13.3" source = { registry = "https://pypi.org/simple" } @@ -2690,7 +2690,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9a/bb/d43e5c75054e53efce310e79d63df0ac3f25e34c926be5dffb7d283fb2a8/typeguard-2.13.3-py3-none-any.whl", hash = "sha256:5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1", size = 17605 }, ] - [[distribution]] + [[package]] name = "typing-extensions" version = "4.7.1" source = { registry = "https://pypi.org/simple" } @@ -2699,7 +2699,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36", size = 33232 }, ] - [[distribution]] + [[package]] name = "zipp" version = "3.15.0" source = { registry = "https://pypi.org/simple" } @@ -2750,7 +2750,7 @@ fn lock_requires_python() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "attrs" version = "23.2.0" source = { registry = "https://pypi.org/simple" } @@ -2762,7 +2762,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, ] - [[distribution]] + [[package]] name = "cattrs" version = "23.1.2" source = { registry = "https://pypi.org/simple" } @@ -2776,7 +2776,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3a/ba/05df14efaa0624fac6b1510e87f5ce446208d2f6ce50270a89b6268aebfe/cattrs-23.1.2-py3-none-any.whl", hash = "sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4", size = 50845 }, ] - [[distribution]] + [[package]] name = "exceptiongroup" version = "1.2.0" source = { registry = "https://pypi.org/simple" } @@ -2785,7 +2785,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/b8/9a/5028fd52db10e600f1c4674441b968cf2ea4959085bfb5b99fb1250e5f68/exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14", size = 16210 }, ] - [[distribution]] + [[package]] name = "importlib-metadata" version = "6.7.0" source = { registry = "https://pypi.org/simple" } @@ -2798,7 +2798,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5", size = 22934 }, ] - [[distribution]] + [[package]] name = "lsprotocol" version = "2023.0.0" source = { registry = "https://pypi.org/simple" } @@ -2811,7 +2811,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/2d/5b/f18eb1823a4cee9bed70cdcc25eed5a75845367c42e63a79010a7c34f8a7/lsprotocol-2023.0.0-py3-none-any.whl", hash = "sha256:e85fc87ee26c816adca9eb497bb3db1a7c79c477a11563626e712eaccf926a05", size = 70789 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2819,7 +2819,7 @@ fn lock_requires_python() -> Result<()> { { name = "pygls" }, ] - [[distribution]] + [[package]] name = "pygls" version = "1.2.1" source = { registry = "https://pypi.org/simple" } @@ -2831,7 +2831,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/36/31/3799444d3f072ffca1a35eb02a48f964384cc13f001125e87d9f0748687b/pygls-1.2.1-py3-none-any.whl", hash = "sha256:7dcfcf12b6f15beb606afa46de2ed348b65a279c340ef2242a9a35c22eeafe94", size = 55983 }, ] - [[distribution]] + [[package]] name = "typing-extensions" version = "4.7.1" source = { registry = "https://pypi.org/simple" } @@ -2840,7 +2840,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36", size = 33232 }, ] - [[distribution]] + [[package]] name = "zipp" version = "3.15.0" source = { registry = "https://pypi.org/simple" } @@ -2891,7 +2891,7 @@ fn lock_requires_python() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "attrs" version = "23.2.0" source = { registry = "https://pypi.org/simple" } @@ -2900,7 +2900,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, ] - [[distribution]] + [[package]] name = "cattrs" version = "23.2.3" source = { registry = "https://pypi.org/simple" } @@ -2912,7 +2912,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/b3/0d/cd4a4071c7f38385dc5ba91286723b4d1090b87815db48216212c6c6c30e/cattrs-23.2.3-py3-none-any.whl", hash = "sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108", size = 57474 }, ] - [[distribution]] + [[package]] name = "lsprotocol" version = "2023.0.1" source = { registry = "https://pypi.org/simple" } @@ -2925,7 +2925,7 @@ fn lock_requires_python() -> Result<()> { { url = "https://files.pythonhosted.org/packages/8d/37/2351e48cb3309673492d3a8c59d407b75fb6630e560eb27ecd4da03adc9a/lsprotocol-2023.0.1-py3-none-any.whl", hash = "sha256:c75223c9e4af2f24272b14c6375787438279369236cd568f596d4951052a60f2", size = 70826 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2933,7 +2933,7 @@ fn lock_requires_python() -> Result<()> { { name = "pygls" }, ] - [[distribution]] + [[package]] name = "pygls" version = "1.3.0" source = { registry = "https://pypi.org/simple" } @@ -3034,7 +3034,7 @@ fn lock_requires_python_wheels() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "frozenlist" version = "1.4.1" source = { registry = "https://pypi.org/simple" } @@ -3058,7 +3058,7 @@ fn lock_requires_python_wheels() -> Result<()> { { url = "https://files.pythonhosted.org/packages/83/10/466fe96dae1bff622021ee687f68e5524d6392b0a2f80d05001cd3a451ba/frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7", size = 11552 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3106,7 +3106,7 @@ fn lock_requires_python_wheels() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "frozenlist" version = "1.4.1" source = { registry = "https://pypi.org/simple" } @@ -3145,7 +3145,7 @@ fn lock_requires_python_wheels() -> Result<()> { { url = "https://files.pythonhosted.org/packages/83/10/466fe96dae1bff622021ee687f68e5524d6392b0a2f80d05001cd3a451ba/frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7", size = 11552 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3203,7 +3203,7 @@ fn lock_requires_python_star() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "attrs" version = "23.2.0" source = { registry = "https://pypi.org/simple" } @@ -3212,7 +3212,7 @@ fn lock_requires_python_star() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, ] - [[distribution]] + [[package]] name = "cattrs" version = "23.2.3" source = { registry = "https://pypi.org/simple" } @@ -3224,7 +3224,7 @@ fn lock_requires_python_star() -> Result<()> { { url = "https://files.pythonhosted.org/packages/b3/0d/cd4a4071c7f38385dc5ba91286723b4d1090b87815db48216212c6c6c30e/cattrs-23.2.3-py3-none-any.whl", hash = "sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108", size = 57474 }, ] - [[distribution]] + [[package]] name = "linehaul" version = "1.0.1" source = { registry = "https://pypi.org/simple" } @@ -3238,7 +3238,7 @@ fn lock_requires_python_star() -> Result<()> { { url = "https://files.pythonhosted.org/packages/03/73/c73588052198be06462d1a7c4653b602a109a0df0208c59e58075dc3bc73/linehaul-1.0.1-py3-none-any.whl", hash = "sha256:d19ca669008dad910868dfae7f904dfc5362583729bda344799cf7ea2ad5ef12", size = 27848 }, ] - [[distribution]] + [[package]] name = "packaging" version = "24.0" source = { registry = "https://pypi.org/simple" } @@ -3247,7 +3247,7 @@ fn lock_requires_python_star() -> Result<()> { { url = "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", size = 53488 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3255,7 +3255,7 @@ fn lock_requires_python_star() -> Result<()> { { name = "linehaul" }, ] - [[distribution]] + [[package]] name = "pyparsing" version = "3.1.2" source = { registry = "https://pypi.org/simple" } @@ -3315,7 +3315,7 @@ fn lock_requires_python_pre() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "attrs" version = "23.2.0" source = { registry = "https://pypi.org/simple" } @@ -3324,7 +3324,7 @@ fn lock_requires_python_pre() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, ] - [[distribution]] + [[package]] name = "cattrs" version = "23.2.3" source = { registry = "https://pypi.org/simple" } @@ -3336,7 +3336,7 @@ fn lock_requires_python_pre() -> Result<()> { { url = "https://files.pythonhosted.org/packages/b3/0d/cd4a4071c7f38385dc5ba91286723b4d1090b87815db48216212c6c6c30e/cattrs-23.2.3-py3-none-any.whl", hash = "sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108", size = 57474 }, ] - [[distribution]] + [[package]] name = "linehaul" version = "1.0.1" source = { registry = "https://pypi.org/simple" } @@ -3350,7 +3350,7 @@ fn lock_requires_python_pre() -> Result<()> { { url = "https://files.pythonhosted.org/packages/03/73/c73588052198be06462d1a7c4653b602a109a0df0208c59e58075dc3bc73/linehaul-1.0.1-py3-none-any.whl", hash = "sha256:d19ca669008dad910868dfae7f904dfc5362583729bda344799cf7ea2ad5ef12", size = 27848 }, ] - [[distribution]] + [[package]] name = "packaging" version = "24.0" source = { registry = "https://pypi.org/simple" } @@ -3359,7 +3359,7 @@ fn lock_requires_python_pre() -> Result<()> { { url = "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", size = 53488 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3367,7 +3367,7 @@ fn lock_requires_python_pre() -> Result<()> { { name = "linehaul" }, ] - [[distribution]] + [[package]] name = "pyparsing" version = "3.1.2" source = { registry = "https://pypi.org/simple" } @@ -3426,7 +3426,7 @@ fn lock_requires_python_unbounded() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "1.1.1" source = { registry = "https://pypi.org/simple" } @@ -3435,7 +3435,7 @@ fn lock_requires_python_unbounded() -> Result<()> { { url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", size = 4990 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3515,7 +3515,7 @@ fn lock_python_version_marker_complement() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "attrs" version = "23.2.0" source = { registry = "https://pypi.org/simple" } @@ -3524,7 +3524,7 @@ fn lock_python_version_marker_complement() -> Result<()> { { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -3533,7 +3533,7 @@ fn lock_python_version_marker_complement() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3543,7 +3543,7 @@ fn lock_python_version_marker_complement() -> Result<()> { { name = "typing-extensions", marker = "python_full_version <= '3.10' or python_full_version > '3.10'" }, ] - [[distribution]] + [[package]] name = "typing-extensions" version = "4.10.0" source = { registry = "https://pypi.org/simple" } @@ -3602,7 +3602,7 @@ fn lock_dev() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -3611,7 +3611,7 @@ fn lock_dev() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3619,12 +3619,12 @@ fn lock_dev() -> Result<()> { { name = "iniconfig" }, ] - [distribution.dev-dependencies] + [package.dev-dependencies] dev = [ { name = "typing-extensions" }, ] - [[distribution]] + [[package]] name = "typing-extensions" version = "4.12.2" source = { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl" } @@ -3705,7 +3705,7 @@ fn lock_conditional_unconditional() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -3714,7 +3714,7 @@ fn lock_conditional_unconditional() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3769,7 +3769,7 @@ fn lock_multiple_markers() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -3778,7 +3778,7 @@ fn lock_multiple_markers() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3873,7 +3873,7 @@ fn relative_and_absolute_paths() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "a" version = "0.1.0" source = { editable = "." } @@ -3882,12 +3882,12 @@ fn relative_and_absolute_paths() -> Result<()> { { name = "c" }, ] - [[distribution]] + [[package]] name = "b" version = "0.1.0" source = { directory = "b" } - [[distribution]] + [[package]] name = "c" version = "0.1.0" source = { directory = "[TEMP_DIR]/c" } @@ -3939,7 +3939,7 @@ fn lock_cycles() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "argparse" version = "1.4.0" source = { registry = "https://pypi.org/simple" } @@ -3948,7 +3948,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl", hash = "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314", size = 23000 }, ] - [[distribution]] + [[package]] name = "extras" version = "1.0.0" source = { registry = "https://pypi.org/simple" } @@ -3957,7 +3957,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/03/e9/e915af1f97914cd0bc021e125fd1bfd4106de614a275e4b6866dd9a209ac/extras-1.0.0-py2.py3-none-any.whl", hash = "sha256:f689f08df47e2decf76aa6208c081306e7bd472630eb1ec8a875c67de2366e87", size = 7279 }, ] - [[distribution]] + [[package]] name = "fixtures" version = "3.0.0" source = { registry = "https://pypi.org/simple" } @@ -3971,7 +3971,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/a8/28/7eed6bf76792f418029a18d5b2ace87ce7562927cdd00f1cefe481cd148f/fixtures-3.0.0-py2.py3-none-any.whl", hash = "sha256:2a551b0421101de112d9497fb5f6fd25e5019391c0fbec9bad591ecae981420d", size = 67478 }, ] - [[distribution]] + [[package]] name = "linecache2" version = "1.0.0" source = { registry = "https://pypi.org/simple" } @@ -3980,7 +3980,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c7/a3/c5da2a44c85bfbb6eebcfc1dde24933f8704441b98fdde6528f4831757a6/linecache2-1.0.0-py2.py3-none-any.whl", hash = "sha256:e78be9c0a0dfcbac712fe04fbf92b96cddae80b1b842f24248214c8496f006ef", size = 12967 }, ] - [[distribution]] + [[package]] name = "pbr" version = "6.0.0" source = { registry = "https://pypi.org/simple" } @@ -3989,7 +3989,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/64/dd/171c9fb653591cf265bcc89c436eec75c9bde3dec921cc236fa71e5698df/pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda", size = 107506 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3998,7 +3998,7 @@ fn lock_cycles() -> Result<()> { { name = "testtools" }, ] - [[distribution]] + [[package]] name = "python-mimeparse" version = "1.6.0" source = { registry = "https://pypi.org/simple" } @@ -4007,7 +4007,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/26/2e/03bce213a9bf02a2750dcb04e761785e9c763fc11071edc4b447eacbb842/python_mimeparse-1.6.0-py2.py3-none-any.whl", hash = "sha256:a295f03ff20341491bfe4717a39cd0a8cc9afad619ba44b77e86b0ab8a2b8282", size = 6057 }, ] - [[distribution]] + [[package]] name = "six" version = "1.16.0" source = { registry = "https://pypi.org/simple" } @@ -4016,7 +4016,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 }, ] - [[distribution]] + [[package]] name = "testtools" version = "2.3.0" source = { registry = "https://pypi.org/simple" } @@ -4034,7 +4034,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/87/74/a4d55da28d7bba6d6f49430f22a62afd8472cb24a63fa61daef80d3e821b/testtools-2.3.0-py2.py3-none-any.whl", hash = "sha256:a2be448869171b6e0f26d9544088b8b98439ec180ce272040236d570a40bcbed", size = 184636 }, ] - [[distribution]] + [[package]] name = "traceback2" version = "1.4.0" source = { registry = "https://pypi.org/simple" } @@ -4046,7 +4046,7 @@ fn lock_cycles() -> Result<()> { { url = "https://files.pythonhosted.org/packages/17/0a/6ac05a3723017a967193456a2efa0aa9ac4b51456891af1e2353bb9de21e/traceback2-1.4.0-py2.py3-none-any.whl", hash = "sha256:8253cebec4b19094d67cc5ed5af99bf1dba1285292226e98a31929f87a5d6b23", size = 16793 }, ] - [[distribution]] + [[package]] name = "unittest2" version = "1.1.0" source = { registry = "https://pypi.org/simple" } @@ -4140,7 +4140,7 @@ fn lock_new_extras() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "certifi" version = "2024.2.2" source = { registry = "https://pypi.org/simple" } @@ -4149,7 +4149,7 @@ fn lock_new_extras() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1", size = 163774 }, ] - [[distribution]] + [[package]] name = "charset-normalizer" version = "3.3.2" source = { registry = "https://pypi.org/simple" } @@ -4173,7 +4173,7 @@ fn lock_new_extras() -> Result<()> { { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -4182,7 +4182,7 @@ fn lock_new_extras() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4190,7 +4190,7 @@ fn lock_new_extras() -> Result<()> { { name = "requests" }, ] - [[distribution]] + [[package]] name = "requests" version = "2.31.0" source = { registry = "https://pypi.org/simple" } @@ -4205,7 +4205,7 @@ fn lock_new_extras() -> Result<()> { { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574 }, ] - [[distribution]] + [[package]] name = "urllib3" version = "2.2.1" source = { registry = "https://pypi.org/simple" } @@ -4246,100 +4246,100 @@ fn lock_new_extras() -> Result<()> { }, { assert_snapshot!( lock, @r###" - version = 1 - requires-python = ">=3.12" + version = 1 + requires-python = ">=3.12" - [options] - exclude-newer = "2024-03-25 00:00:00 UTC" + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] - name = "certifi" - version = "2024.2.2" - source = { registry = "https://pypi.org/simple" } - sdist = { url = "https://files.pythonhosted.org/packages/71/da/e94e26401b62acd6d91df2b52954aceb7f561743aa5ccc32152886c76c96/certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", size = 164886 } - wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1", size = 163774 }, - ] + [[package]] + name = "certifi" + version = "2024.2.2" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/71/da/e94e26401b62acd6d91df2b52954aceb7f561743aa5ccc32152886c76c96/certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", size = 164886 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1", size = 163774 }, + ] - [[distribution]] - name = "charset-normalizer" - version = "3.3.2" - source = { registry = "https://pypi.org/simple" } - sdist = { url = "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", size = 104809 } - wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/b2/fcedc8255ec42afee97f9e6f0145c734bbe104aac28300214593eb326f1d/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", size = 192892 }, - { url = "https://files.pythonhosted.org/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", size = 122213 }, - { url = "https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", size = 119404 }, - { url = "https://files.pythonhosted.org/packages/99/b0/9c365f6d79a9f0f3c379ddb40a256a67aa69c59609608fe7feb6235896e1/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", size = 137275 }, - { url = "https://files.pythonhosted.org/packages/91/33/749df346e93d7a30cdcb90cbfdd41a06026317bfbfb62cd68307c1a3c543/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", size = 147518 }, - { url = "https://files.pythonhosted.org/packages/72/1a/641d5c9f59e6af4c7b53da463d07600a695b9824e20849cb6eea8a627761/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", size = 140182 }, - { url = "https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", size = 141869 }, - { url = "https://files.pythonhosted.org/packages/df/3e/a06b18788ca2eb6695c9b22325b6fde7dde0f1d1838b1792a0076f58fe9d/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", size = 144042 }, - { url = "https://files.pythonhosted.org/packages/45/59/3d27019d3b447a88fe7e7d004a1e04be220227760264cc41b405e863891b/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", size = 138275 }, - { url = "https://files.pythonhosted.org/packages/7b/ef/5eb105530b4da8ae37d506ccfa25057961b7b63d581def6f99165ea89c7e/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", size = 144819 }, - { url = "https://files.pythonhosted.org/packages/a2/51/e5023f937d7f307c948ed3e5c29c4b7a3e42ed2ee0b8cdf8f3a706089bf0/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", size = 149415 }, - { url = "https://files.pythonhosted.org/packages/24/9d/2e3ef673dfd5be0154b20363c5cdcc5606f35666544381bee15af3778239/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", size = 141212 }, - { url = "https://files.pythonhosted.org/packages/5b/ae/ce2c12fcac59cb3860b2e2d76dc405253a4475436b1861d95fe75bdea520/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", size = 142167 }, - { url = "https://files.pythonhosted.org/packages/ed/3a/a448bf035dce5da359daf9ae8a16b8a39623cc395a2ffb1620aa1bce62b0/charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", size = 93041 }, - { url = "https://files.pythonhosted.org/packages/b6/7c/8debebb4f90174074b827c63242c23851bdf00a532489fba57fef3416e40/charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", size = 100397 }, - { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 }, - ] + [[package]] + name = "charset-normalizer" + version = "3.3.2" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", size = 104809 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/b2/fcedc8255ec42afee97f9e6f0145c734bbe104aac28300214593eb326f1d/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", size = 192892 }, + { url = "https://files.pythonhosted.org/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", size = 122213 }, + { url = "https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", size = 119404 }, + { url = "https://files.pythonhosted.org/packages/99/b0/9c365f6d79a9f0f3c379ddb40a256a67aa69c59609608fe7feb6235896e1/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", size = 137275 }, + { url = "https://files.pythonhosted.org/packages/91/33/749df346e93d7a30cdcb90cbfdd41a06026317bfbfb62cd68307c1a3c543/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", size = 147518 }, + { url = "https://files.pythonhosted.org/packages/72/1a/641d5c9f59e6af4c7b53da463d07600a695b9824e20849cb6eea8a627761/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", size = 140182 }, + { url = "https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", size = 141869 }, + { url = "https://files.pythonhosted.org/packages/df/3e/a06b18788ca2eb6695c9b22325b6fde7dde0f1d1838b1792a0076f58fe9d/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", size = 144042 }, + { url = "https://files.pythonhosted.org/packages/45/59/3d27019d3b447a88fe7e7d004a1e04be220227760264cc41b405e863891b/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", size = 138275 }, + { url = "https://files.pythonhosted.org/packages/7b/ef/5eb105530b4da8ae37d506ccfa25057961b7b63d581def6f99165ea89c7e/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", size = 144819 }, + { url = "https://files.pythonhosted.org/packages/a2/51/e5023f937d7f307c948ed3e5c29c4b7a3e42ed2ee0b8cdf8f3a706089bf0/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", size = 149415 }, + { url = "https://files.pythonhosted.org/packages/24/9d/2e3ef673dfd5be0154b20363c5cdcc5606f35666544381bee15af3778239/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", size = 141212 }, + { url = "https://files.pythonhosted.org/packages/5b/ae/ce2c12fcac59cb3860b2e2d76dc405253a4475436b1861d95fe75bdea520/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", size = 142167 }, + { url = "https://files.pythonhosted.org/packages/ed/3a/a448bf035dce5da359daf9ae8a16b8a39623cc395a2ffb1620aa1bce62b0/charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", size = 93041 }, + { url = "https://files.pythonhosted.org/packages/b6/7c/8debebb4f90174074b827c63242c23851bdf00a532489fba57fef3416e40/charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", size = 100397 }, + { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 }, + ] - [[distribution]] - name = "idna" - version = "3.6" - source = { registry = "https://pypi.org/simple" } - sdist = { url = "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", size = 175426 } - wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, - ] + [[package]] + name = "idna" + version = "3.6" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", size = 175426 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, + ] - [[distribution]] - name = "project" - version = "0.1.0" - source = { editable = "." } - dependencies = [ - { name = "requests", extra = ["socks"] }, - ] + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "requests", extra = ["socks"] }, + ] - [[distribution]] - name = "pysocks" - version = "1.7.1" - source = { registry = "https://pypi.org/simple" } - sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429 } - wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 }, - ] + [[package]] + name = "pysocks" + version = "1.7.1" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 }, + ] - [[distribution]] - name = "requests" - version = "2.31.0" - source = { registry = "https://pypi.org/simple" } - dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, - ] - sdist = { url = "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1", size = 110794 } - wheels = [ - { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574 }, - ] + [[package]] + name = "requests" + version = "2.31.0" + source = { registry = "https://pypi.org/simple" } + dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, + ] + sdist = { url = "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1", size = 110794 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574 }, + ] - [distribution.optional-dependencies] - socks = [ - { name = "pysocks" }, - ] + [package.optional-dependencies] + socks = [ + { name = "pysocks" }, + ] - [[distribution]] - name = "urllib3" - version = "2.2.1" - source = { registry = "https://pypi.org/simple" } - sdist = { url = "https://files.pythonhosted.org/packages/7a/50/7fd50a27caa0652cd4caf224aa87741ea41d3265ad13f010886167cfcc79/urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19", size = 291020 } - wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", size = 121067 }, - ] - "### + [[package]] + name = "urllib3" + version = "2.2.1" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/7a/50/7fd50a27caa0652cd4caf224aa87741ea41d3265ad13f010886167cfcc79/urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19", size = 291020 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", size = 121067 }, + ] + "### ); }); @@ -4369,7 +4369,7 @@ fn lock_invalid_hash() -> Result<()> { version = 1 requires-python = ">=3.12" - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -4382,7 +4382,7 @@ fn lock_invalid_hash() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -4391,7 +4391,7 @@ fn lock_invalid_hash() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:d05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4399,7 +4399,7 @@ fn lock_invalid_hash() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -4482,7 +4482,7 @@ fn lock_resolution_mode() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -4495,7 +4495,7 @@ fn lock_resolution_mode() -> Result<()> { { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -4504,7 +4504,7 @@ fn lock_resolution_mode() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4512,7 +4512,7 @@ fn lock_resolution_mode() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -4562,7 +4562,7 @@ fn lock_resolution_mode() -> Result<()> { resolution-mode = "lowest-direct" exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.0.0" source = { registry = "https://pypi.org/simple" } @@ -4575,7 +4575,7 @@ fn lock_resolution_mode() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3b/49/ebee263b69fe243bd1fd0a88bc6bb0f7732bf1794ba3273cb446351f9482/anyio-3.0.0-py3-none-any.whl", hash = "sha256:e71c3d9d72291d12056c0265d07c6bbedf92332f78573e278aeb116f24f30395", size = 72182 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -4584,7 +4584,7 @@ fn lock_resolution_mode() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4592,7 +4592,7 @@ fn lock_resolution_mode() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -4714,7 +4714,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "3.0.0" source = { registry = "https://pypi.org/simple" } @@ -4730,7 +4730,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { { url = "https://files.pythonhosted.org/packages/3b/49/ebee263b69fe243bd1fd0a88bc6bb0f7732bf1794ba3273cb446351f9482/anyio-3.0.0-py3-none-any.whl", hash = "sha256:e71c3d9d72291d12056c0265d07c6bbedf92332f78573e278aeb116f24f30395", size = 72182 }, ] - [[distribution]] + [[package]] name = "anyio" version = "3.7.0" source = { registry = "https://pypi.org/simple" } @@ -4746,7 +4746,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { { url = "https://files.pythonhosted.org/packages/68/fe/7ce1926952c8a403b35029e194555558514b365ad77d75125f521a2bec62/anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0", size = 80873 }, ] - [[distribution]] + [[package]] name = "dependency" version = "0.0.1" source = { directory = "[TEMP_DIR]/v1" } @@ -4757,7 +4757,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { { name = "anyio", version = "3.7.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'darwin'" }, ] - [[distribution]] + [[package]] name = "dependency" version = "0.0.1" source = { directory = "[TEMP_DIR]/v2" } @@ -4768,7 +4768,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { { name = "anyio", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'darwin'" }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -4777,7 +4777,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4786,7 +4786,7 @@ fn lock_same_version_multiple_urls() -> Result<()> { { name = "dependency", version = "0.0.1", source = { directory = "[TEMP_DIR]/v2" }, marker = "sys_platform != 'darwin'" }, ] - [[distribution]] + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -4897,7 +4897,7 @@ fn lock_exclusion() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "child" version = "0.1.0" source = { editable = "." } @@ -4905,7 +4905,7 @@ fn lock_exclusion() -> Result<()> { { name = "project" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { directory = "../" } @@ -5002,7 +5002,7 @@ fn lock_dev_transitive() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "bar" version = "0.1.0" source = { editable = "." } @@ -5012,22 +5012,22 @@ fn lock_dev_transitive() -> Result<()> { { name = "iniconfig" }, ] - [[distribution]] + [[package]] name = "baz" version = "0.1.0" source = { editable = "baz" } - [distribution.dev-dependencies] + [package.dev-dependencies] dev = [ { name = "typing-extensions" }, ] - [[distribution]] + [[package]] name = "foo" version = "0.1.0" source = { directory = "../foo" } - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -5036,7 +5036,7 @@ fn lock_dev_transitive() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "typing-extensions" version = "4.10.0" source = { registry = "https://pypi.org/simple" } @@ -5091,7 +5091,7 @@ fn lock_redact() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "foo" version = "0.1.0" source = { editable = "." } @@ -5099,7 +5099,7 @@ fn lock_redact() -> Result<()> { { name = "iniconfig" }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi-proxy.fly.dev/basic-auth/simple" } @@ -5211,7 +5211,7 @@ fn lock_no_sources() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "0.1.0" source = { directory = "anyio" } @@ -5219,7 +5219,7 @@ fn lock_no_sources() -> Result<()> { { name = "iniconfig" }, ] - [[distribution]] + [[package]] name = "iniconfig" version = "2.0.0" source = { registry = "https://pypi.org/simple" } @@ -5228,7 +5228,7 @@ fn lock_no_sources() -> Result<()> { { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -5267,7 +5267,7 @@ fn lock_no_sources() -> Result<()> { [options] exclude-newer = "2024-03-25 00:00:00 UTC" - [[distribution]] + [[package]] name = "anyio" version = "4.3.0" source = { registry = "https://pypi.org/simple" } @@ -5280,7 +5280,7 @@ fn lock_no_sources() -> Result<()> { { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, ] - [[distribution]] + [[package]] name = "idna" version = "3.6" source = { registry = "https://pypi.org/simple" } @@ -5289,7 +5289,7 @@ fn lock_no_sources() -> Result<()> { { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -5297,7 +5297,146 @@ fn lock_no_sources() -> Result<()> { { name = "anyio" }, ] - [[distribution]] + [[package]] + name = "sniffio" + version = "1.3.1" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, + ] + "### + ); + }); + + Ok(()) +} + +/// Lock a project that has an existing lockfile with a deprecated schema. +#[test] +fn lock_migrate() -> Result<()> { + let context = TestContext::new("3.12"); + + let pyproject_toml = context.temp_dir.child("pyproject.toml"); + pyproject_toml.write_str( + r#" + [project] + name = "project" + version = "0.1.0" + requires-python = ">=3.12" + dependencies = ["anyio"] + "#, + )?; + + // Write a lockfile with a deprecated schema. + let lock = context.temp_dir.child("uv.lock"); + lock.write_str( + r#" + version = 1 + requires-python = ">=3.12" + + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" + + [[distribution-term-we-dont-know]] + name = "anyio" + version = "4.3.0" + source = { registry = "https://pypi.org/simple" } + dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + ] + sdist = { url = "https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6", size = 159642 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, + ] + + [[distribution-term-we-dont-know]] + name = "idna" + version = "3.6" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", size = 175426 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, + ] + + [[distribution-term-we-dont-know]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "anyio" }, + ] + + [[distribution-term-we-dont-know]] + name = "sniffio" + version = "1.3.1" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, + ] + "# + )?; + + uv_snapshot!(context.filters(), context.lock().current_dir(&context.temp_dir), @r###" + success: true + exit_code: 0 + ----- stdout ----- + + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + Resolved 4 packages in [TIME] + Added anyio v4.3.0 + Added idna v3.6 + Added project v0.1.0 + Added sniffio v1.3.1 + "###); + + let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap(); + + insta::with_settings!({ + filters => context.filters(), + }, { + assert_snapshot!( + lock, @r###" + version = 1 + requires-python = ">=3.12" + + [options] + exclude-newer = "2024-03-25 00:00:00 UTC" + + [[package]] + name = "anyio" + version = "4.3.0" + source = { registry = "https://pypi.org/simple" } + dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + ] + sdist = { url = "https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6", size = 159642 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 }, + ] + + [[package]] + name = "idna" + version = "3.6" + source = { registry = "https://pypi.org/simple" } + sdist = { url = "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", size = 175426 } + wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 }, + ] + + [[package]] + name = "project" + version = "0.1.0" + source = { editable = "." } + dependencies = [ + { name = "anyio" }, + ] + + [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } diff --git a/crates/uv/tests/lock_scenarios.rs b/crates/uv/tests/lock_scenarios.rs index ca22dba36..f5171dbbc 100644 --- a/crates/uv/tests/lock_scenarios.rs +++ b/crates/uv/tests/lock_scenarios.rs @@ -92,7 +92,7 @@ fn fork_allows_non_conflicting_non_overlapping_dependencies() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -101,7 +101,7 @@ fn fork_allows_non_conflicting_non_overlapping_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_allows_non_conflicting_non_overlapping_dependencies_a-1.0.0-py3-none-any.whl", hash = "sha256:8111e996c2a4e04c7a7cf91cf6f8338f5195c22ecf2303d899c4ef4e718a8175" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -200,7 +200,7 @@ fn fork_allows_non_conflicting_repeated_dependencies() -> Result<()> { version = 1 requires-python = ">=3.8" - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -209,7 +209,7 @@ fn fork_allows_non_conflicting_repeated_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_allows_non_conflicting_repeated_dependencies_a-1.0.0-py3-none-any.whl", hash = "sha256:fc3f6d2fab10d1bb4f52bd9a7de69dc97ed1792506706ca78bdc9e95d6641a6b" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -300,7 +300,7 @@ fn fork_basic() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -312,7 +312,7 @@ fn fork_basic() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_basic_a-1.0.0-py3-none-any.whl", hash = "sha256:9d3af617bb44ae1c8daf19f6d4d118ee8aac7eaf0cc5368d0f405137411291a1" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -324,7 +324,7 @@ fn fork_basic() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_basic_a-2.0.0-py3-none-any.whl", hash = "sha256:3876778dc6e5178b0e456b0d988cb8c2542cb943a45497aff3e198cbec3dfcc9" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -585,7 +585,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "4.3.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -597,7 +597,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_filter_sibling_dependencies_a-4.3.0-py3-none-any.whl", hash = "sha256:932c128393cd499617d1a5b457b11887d51039284b18e06add4c384ab661148c" }, ] - [[distribution]] + [[package]] name = "package-a" version = "4.4.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -609,7 +609,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_filter_sibling_dependencies_a-4.4.0-py3-none-any.whl", hash = "sha256:26989734e8fa720896dbbf900adc64551bf3f0026fb62c3c22b47dc23edd4a4c" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -621,7 +621,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_filter_sibling_dependencies_b-1.0.0-py3-none-any.whl", hash = "sha256:bc72ef97f57a77fc7be9dc400be26ae5c344aabddbe39407c05a62e07554cdbf" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -633,7 +633,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_filter_sibling_dependencies_c-1.0.0-py3-none-any.whl", hash = "sha256:71fc9aec5527839358209ccb927186dd0529e9814a725d86aa17e7a033c59cd4" }, ] - [[distribution]] + [[package]] name = "package-d" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -645,7 +645,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_filter_sibling_dependencies_d-1.0.0-py3-none-any.whl", hash = "sha256:de669ada03e9f8625e3ac4af637c88de04066a72675c16c3d1757e0e9d5db7a8" }, ] - [[distribution]] + [[package]] name = "package-d" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -657,7 +657,7 @@ fn fork_filter_sibling_dependencies() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_filter_sibling_dependencies_d-2.0.0-py3-none-any.whl", hash = "sha256:87c133dcc987137d62c011a41af31e8372ca971393d93f808dffc32e136363c7" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -763,7 +763,7 @@ fn fork_incomplete_markers() -> Result<()> { "python_version < '3.11' and python_version >= '3.10'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -775,7 +775,7 @@ fn fork_incomplete_markers() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_incomplete_markers_a-1.0.0-py3-none-any.whl", hash = "sha256:779bb805058fc59858e8b9260cd1a40f13f1640631fdea89d9d243691a4f39ca" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -787,7 +787,7 @@ fn fork_incomplete_markers() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_incomplete_markers_a-2.0.0-py3-none-any.whl", hash = "sha256:58a4b7dcf929aabf1ed434d9ff8d715929dc3dec02b92cf2b364d5a2206f1f6a" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -799,7 +799,7 @@ fn fork_incomplete_markers() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_incomplete_markers_b-1.0.0-py3-none-any.whl", hash = "sha256:5c2a5f446580787ed7b3673431b112474237ddeaf1c81325bb30b86e7ee76adb" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -808,7 +808,7 @@ fn fork_incomplete_markers() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_incomplete_markers_c-1.0.0-py3-none-any.whl", hash = "sha256:03fa287aa4cb78457211cb3df7459b99ba1ee2259aae24bc745eaab45e7eaaee" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -906,7 +906,7 @@ fn fork_marker_accrue() -> Result<()> { version = 1 requires-python = ">=3.8" - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -918,7 +918,7 @@ fn fork_marker_accrue() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_accrue_a-1.0.0-py3-none-any.whl", hash = "sha256:cba9cb55cca41833a15c9f8eb75045236cf80cad5d663f7fb7ecae18dad79538" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -930,7 +930,7 @@ fn fork_marker_accrue() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_accrue_b-1.0.0-py3-none-any.whl", hash = "sha256:c5202800c26be15ecaf5560e09ad1df710778bb9debd3c267be1c76f44fbc0c9" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -939,7 +939,7 @@ fn fork_marker_accrue() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_accrue_c-1.0.0-py3-none-any.whl", hash = "sha256:b0c8719d38c91b2a8548bd065b1d2153fbe031b37775ed244e76fe5bdfbb502e" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1114,7 +1114,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1132,7 +1132,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_allowed_a-1.0.0-py3-none-any.whl", hash = "sha256:198ae54c02a59734dc009bfcee1148d40f56c605b62f9f1a00467e09ebf2ff07" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1144,7 +1144,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_allowed_a-2.0.0-py3-none-any.whl", hash = "sha256:61b7d273468584342de4c0185beed5b128797ce95ec9ec4a670fe30f73351cf7" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1159,7 +1159,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_allowed_b-1.0.0-py3-none-any.whl", hash = "sha256:e1deba885509945ef087e4f31c7dba3ee436fc8284b360fe207a3c42f2f9e22f" }, ] - [[distribution]] + [[package]] name = "package-b" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1171,7 +1171,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_allowed_b-2.0.0-py3-none-any.whl", hash = "sha256:736d1b59cb46a0b889614bc7557c293de245fe8954e3200e786500ae8e42504b" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1180,7 +1180,7 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_allowed_c-1.0.0-py3-none-any.whl", hash = "sha256:6a6b776dedabceb6a6c4f54a5d932076fa3fed1380310491999ca2d31e13b41c" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1290,7 +1290,7 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1308,7 +1308,7 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_disallowed_a-1.0.0-py3-none-any.whl", hash = "sha256:ee2dc68d5b33c0318183431cebf99ccca63d98601b936e5d3eae804c73f2b154" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1320,7 +1320,7 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_disallowed_a-2.0.0-py3-none-any.whl", hash = "sha256:099db8d3af6c9dfc10589ab0f1e2e6a74276a167afb39322ddaf657791247456" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1332,7 +1332,7 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_disallowed_b-1.0.0-py3-none-any.whl", hash = "sha256:999b3d0029ea0131272257e2b04c0e673defa6c25be6efc411e04936bce72ef6" }, ] - [[distribution]] + [[package]] name = "package-b" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1344,7 +1344,7 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_disallowed_b-2.0.0-py3-none-any.whl", hash = "sha256:2c6aedd257d0ed21bb96f6e0baba8314c001d4078d09413cda147fb6badb39a2" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1455,7 +1455,7 @@ fn fork_marker_inherit_combined() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1473,7 +1473,7 @@ fn fork_marker_inherit_combined() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_a-1.0.0-py3-none-any.whl", hash = "sha256:1150f6d977824bc0260cfb5fcf34816424ed4602d5df316c291b8df3f723c888" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1485,7 +1485,7 @@ fn fork_marker_inherit_combined() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_a-2.0.0-py3-none-any.whl", hash = "sha256:67e142d749674a27c872db714d50fda083010789da51291e3c30b4daf0e96b3b" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1497,7 +1497,7 @@ fn fork_marker_inherit_combined() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_b-1.0.0-py3-none-any.whl", hash = "sha256:d9b50d8a0968d65af338e27d6b2a58eea59c514e47b820752a2c068b5a8333a7" }, ] - [[distribution]] + [[package]] name = "package-b" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1509,7 +1509,7 @@ fn fork_marker_inherit_combined() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_combined_b-2.0.0-py3-none-any.whl", hash = "sha256:ff364fd590d05651579d8bea621b069934470106b9a82ab960fb93dfd88ea038" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1611,7 +1611,7 @@ fn fork_marker_inherit_isolated() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1623,7 +1623,7 @@ fn fork_marker_inherit_isolated() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_isolated_a-1.0.0-py3-none-any.whl", hash = "sha256:6823b88bf6debf2ec6195d82943c2812235a642438f007c0a3c95d745a5b95ba" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1638,7 +1638,7 @@ fn fork_marker_inherit_isolated() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_isolated_a-2.0.0-py3-none-any.whl", hash = "sha256:16986b43ef61e3f639b61fc9c22ede133864606d3d72716161a59acd64793c02" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1647,7 +1647,7 @@ fn fork_marker_inherit_isolated() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_isolated_b-1.0.0-py3-none-any.whl", hash = "sha256:c8affc2f13f9bcd08b3d1601a21a1781ea14d52a8cddc708b29428c9c3d53ea5" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1755,7 +1755,7 @@ fn fork_marker_inherit_transitive() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1770,7 +1770,7 @@ fn fork_marker_inherit_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_transitive_a-1.0.0-py3-none-any.whl", hash = "sha256:84d650ff1a909198ba82cbe0f697e836d8a570fb71faa6ad4a30c4df332dfde6" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1782,7 +1782,7 @@ fn fork_marker_inherit_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_transitive_a-2.0.0-py3-none-any.whl", hash = "sha256:420c4c6b02d22c33f7f8ae9f290acc5b4c372fc2e49c881d259237a31c76dc0b" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1794,7 +1794,7 @@ fn fork_marker_inherit_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_transitive_b-1.0.0-py3-none-any.whl", hash = "sha256:c9738afccc13d7d5bd7be85abf5dc77f88c43c577fb2f90dfa2abf1ffa0c8db6" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1803,7 +1803,7 @@ fn fork_marker_inherit_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_transitive_c-1.0.0-py3-none-any.whl", hash = "sha256:ad2cbb0582ec6f4dc9549d1726d2aae66cd1fdf0e355acc70cd720cf65ae4d86" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -1907,7 +1907,7 @@ fn fork_marker_inherit() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1919,7 +1919,7 @@ fn fork_marker_inherit() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_a-1.0.0-py3-none-any.whl", hash = "sha256:16447932477c5feaa874b4e7510023c6f732578cec07158bc0e872af887a77d6" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -1931,7 +1931,7 @@ fn fork_marker_inherit() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_inherit_a-2.0.0-py3-none-any.whl", hash = "sha256:d650b6acf8f68d85e210ceb3e7802fbe84aad2b918b06a72dee534fe5474852b" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2041,7 +2041,7 @@ fn fork_marker_limited_inherit() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2053,7 +2053,7 @@ fn fork_marker_limited_inherit() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_limited_inherit_a-1.0.0-py3-none-any.whl", hash = "sha256:0dcb9659eeb891701535005a2afd7c579f566d3908e96137db74129924ae6a7e" }, ] - [[distribution]] + [[package]] name = "package-a" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2065,7 +2065,7 @@ fn fork_marker_limited_inherit() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_limited_inherit_a-2.0.0-py3-none-any.whl", hash = "sha256:10957fddbd5611e0db154744a01d588c7105e26fd5f6a8150956ca9542d844c5" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2077,7 +2077,7 @@ fn fork_marker_limited_inherit() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_limited_inherit_b-1.0.0-py3-none-any.whl", hash = "sha256:17365faaf25dba08be579867f219f914a0ff3298441f8d7b6201625a253333ec" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2086,7 +2086,7 @@ fn fork_marker_limited_inherit() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_limited_inherit_c-1.0.0-py3-none-any.whl", hash = "sha256:877a87a4987ad795ddaded3e7266ed7defdd3cfbe07a29500cb6047637db4065" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2191,7 +2191,7 @@ fn fork_marker_selection() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "0.1.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2200,7 +2200,7 @@ fn fork_marker_selection() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_selection_a-0.1.0-py3-none-any.whl", hash = "sha256:a3b9d6e46cc226d20994cc60653fd59d81d96527749f971a6f59ef8cbcbc7c01" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2212,7 +2212,7 @@ fn fork_marker_selection() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_selection_b-1.0.0-py3-none-any.whl", hash = "sha256:5eb8c7fc25dfe94c8a3b71bc09eadb8cd4c7e55b974cee851b848c3856d6a4f9" }, ] - [[distribution]] + [[package]] name = "package-b" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2224,7 +2224,7 @@ fn fork_marker_selection() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_selection_b-2.0.0-py3-none-any.whl", hash = "sha256:163fbcd238a66243064d41bd383657a63e45155f63bf92668c23af5245307380" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2341,7 +2341,7 @@ fn fork_marker_track() -> Result<()> { "sys_platform != 'darwin' and sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-a" version = "1.3.1" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2353,7 +2353,7 @@ fn fork_marker_track() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_track_a-1.3.1-py3-none-any.whl", hash = "sha256:d9dc6a64400a041199df2d37182582ff7cc986bac486da273d814627e9b86648" }, ] - [[distribution]] + [[package]] name = "package-b" version = "2.7" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2365,7 +2365,7 @@ fn fork_marker_track() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_track_b-2.7-py3-none-any.whl", hash = "sha256:544eb2b567d2293c47da724af91fec59c2d3e06675617d29068864ec3a4e390f" }, ] - [[distribution]] + [[package]] name = "package-b" version = "2.8" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2377,7 +2377,7 @@ fn fork_marker_track() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_track_b-2.8-py3-none-any.whl", hash = "sha256:5aba691ce804ee39b2464c7757f8680786a1468e152ee845ff841c37f8112e21" }, ] - [[distribution]] + [[package]] name = "package-c" version = "1.10" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2386,7 +2386,7 @@ fn fork_marker_track() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_marker_track_c-1.10-py3-none-any.whl", hash = "sha256:cedcb8fbcdd9fbde4eea76612e57536c8b56507a9d7f7a92e483cb56b18c57a3" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -2483,7 +2483,7 @@ fn fork_non_fork_marker_transitive() -> Result<()> { version = 1 requires-python = ">=3.8" - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2495,7 +2495,7 @@ fn fork_non_fork_marker_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_non_fork_marker_transitive_a-1.0.0-py3-none-any.whl", hash = "sha256:6c49aef823d3544d795c05497ca2dbd5c419cad4454e4d41b8f4860be45bd4bf" }, ] - [[distribution]] + [[package]] name = "package-b" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2507,7 +2507,7 @@ fn fork_non_fork_marker_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_non_fork_marker_transitive_b-1.0.0-py3-none-any.whl", hash = "sha256:6f301799cb51d920c7bef0120d5914f8315758ddc9f856b88783efae706dac16" }, ] - [[distribution]] + [[package]] name = "package-c" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -2516,7 +2516,7 @@ fn fork_non_fork_marker_transitive() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_non_fork_marker_transitive_c-2.0.0-py3-none-any.whl", hash = "sha256:2b72d6af81967e1c55f30d920d6a7b913fce6ad0a0658ec79972a3d1a054e85f" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3603,7 +3603,7 @@ fn preferences_dependent_forking() -> Result<()> { "sys_platform != 'linux'", ] - [[distribution]] + [[package]] name = "package-bar" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -3612,7 +3612,7 @@ fn preferences_dependent_forking() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/preferences_dependent_forking_bar-1.0.0-py3-none-any.whl", hash = "sha256:3cdaac4b0ba330f902d0628c0b1d6e62692f52255d02718d04f46ade7c8ad6a6" }, ] - [[distribution]] + [[package]] name = "package-cleaver" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -3625,7 +3625,7 @@ fn preferences_dependent_forking() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/preferences_dependent_forking_cleaver-1.0.0-py3-none-any.whl", hash = "sha256:855467570c9da8e92ce37d0ebd0653cfa50d5d88b9540beca94feaa37a539dc3" }, ] - [[distribution]] + [[package]] name = "package-foo" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -3637,7 +3637,7 @@ fn preferences_dependent_forking() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/preferences_dependent_forking_foo-1.0.0-py3-none-any.whl", hash = "sha256:85348e8df4892b9f297560c16abcf231828f538dc07339ed121197a00a0626a5" }, ] - [[distribution]] + [[package]] name = "package-foo" version = "2.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -3649,7 +3649,7 @@ fn preferences_dependent_forking() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/preferences_dependent_forking_foo-2.0.0-py3-none-any.whl", hash = "sha256:bae278cf259c0e031e52b6cbb537d945e0e606d045e980b90d406d0f1e06aae9" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3916,7 +3916,7 @@ fn fork_requires_python_full_prerelease() -> Result<()> { version = 1 requires-python = ">=3.10" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -3999,7 +3999,7 @@ fn fork_requires_python_full() -> Result<()> { version = 1 requires-python = ">=3.10" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4086,7 +4086,7 @@ fn fork_requires_python_patch_overlap() -> Result<()> { version = 1 requires-python = ">=3.10.1" - [[distribution]] + [[package]] name = "package-a" version = "1.0.0" source = { registry = "https://astral-sh.github.io/packse/PACKSE_VERSION/simple-html/" } @@ -4095,7 +4095,7 @@ fn fork_requires_python_patch_overlap() -> Result<()> { { url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/fork_requires_python_patch_overlap_a-1.0.0-py3-none-any.whl", hash = "sha256:43a750ba4eaab749d608d70e94d3d51e083cc21f5a52ac99b5967b26486d5ef1" }, ] - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } @@ -4178,7 +4178,7 @@ fn fork_requires_python() -> Result<()> { version = 1 requires-python = ">=3.10" - [[distribution]] + [[package]] name = "project" version = "0.1.0" source = { editable = "." } diff --git a/crates/uv/tests/workspace.rs b/crates/uv/tests/workspace.rs index 643699025..19ecfc1b2 100644 --- a/crates/uv/tests/workspace.rs +++ b/crates/uv/tests/workspace.rs @@ -675,20 +675,20 @@ fn workspace_lock_idempotence_virtual_workspace() -> Result<()> { /// Extract just the sources from the lockfile, to test path resolution. #[derive(Deserialize, Serialize)] struct SourceLock { - distribution: Vec, + package: Vec, } impl SourceLock { fn sources(self) -> BTreeMap { - self.distribution + self.package .into_iter() - .map(|distribution| (distribution.name, distribution.source)) + .map(|package| (package.name, package.source)) .collect() } } #[derive(Deserialize, Serialize)] -struct Distribution { +struct Package { name: String, source: toml::Value, } diff --git a/scripts/benchmark/uv.lock b/scripts/benchmark/uv.lock index 8f8f5683e..8e1e622bf 100644 --- a/scripts/benchmark/uv.lock +++ b/scripts/benchmark/uv.lock @@ -1,7 +1,7 @@ version = 1 requires-python = ">=3.11" -[[distribution]] +[[package]] name = "anyio" version = "4.4.0" source = { registry = "https://pypi.org/simple" } @@ -14,7 +14,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7b/a2/10639a79341f6c019dedc95bd48a4928eed9f1d1197f4c04f546fc7ae0ff/anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7", size = 86780 }, ] -[[distribution]] +[[package]] name = "argcomplete" version = "3.4.0" source = { registry = "https://pypi.org/simple" } @@ -23,7 +23,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/29/cba741f3abc1700dda883c4a1dd83f4ae89e4e8654067929d89143df2c58/argcomplete-3.4.0-py3-none-any.whl", hash = "sha256:69a79e083a716173e5532e0fa3bef45f793f4e61096cf52b5a42c0211c8b8aa5", size = 42641 }, ] -[[distribution]] +[[package]] name = "benchmark" version = "0.0.1" source = { editable = "." } @@ -37,7 +37,7 @@ dependencies = [ { name = "virtualenv" }, ] -[[distribution]] +[[package]] name = "blinker" version = "1.8.2" source = { registry = "https://pypi.org/simple" } @@ -46,7 +46,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/2a/10164ed1f31196a2f7f3799368a821765c62851ead0e630ab52b8e14b4d0/blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01", size = 9456 }, ] -[[distribution]] +[[package]] name = "build" version = "1.2.1" source = { registry = "https://pypi.org/simple" } @@ -60,7 +60,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e2/03/f3c8ba0a6b6e30d7d18c40faab90807c9bb5e9a1e3b2fe2008af624a9c97/build-1.2.1-py3-none-any.whl", hash = "sha256:75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4", size = 21911 }, ] -[[distribution]] +[[package]] name = "cachecontrol" version = "0.14.0" source = { registry = "https://pypi.org/simple" } @@ -78,7 +78,7 @@ filecache = [ { name = "filelock" }, ] -[[distribution]] +[[package]] name = "certifi" version = "2024.7.4" source = { registry = "https://pypi.org/simple" } @@ -87,7 +87,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90", size = 162960 }, ] -[[distribution]] +[[package]] name = "cffi" version = "1.16.0" source = { registry = "https://pypi.org/simple" } @@ -119,7 +119,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/63/e285470a4880a4f36edabe4810057bd4b562c6ddcc165eacf9c3c7210b40/cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", size = 181956 }, ] -[[distribution]] +[[package]] name = "charset-normalizer" version = "3.3.2" source = { registry = "https://pypi.org/simple" } @@ -158,7 +158,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543 }, ] -[[distribution]] +[[package]] name = "cleo" version = "2.1.0" source = { registry = "https://pypi.org/simple" } @@ -171,7 +171,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2d/f5/6bbead8b880620e5a99e0e4bb9e22e67cca16ff48d54105302a3e7821096/cleo-2.1.0-py3-none-any.whl", hash = "sha256:4a31bd4dd45695a64ee3c4758f583f134267c2bc518d8ae9a29cf237d009b07e", size = 78711 }, ] -[[distribution]] +[[package]] name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } @@ -183,7 +183,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, ] -[[distribution]] +[[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } @@ -192,7 +192,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] -[[distribution]] +[[package]] name = "crashtest" version = "0.4.1" source = { registry = "https://pypi.org/simple" } @@ -201,7 +201,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b0/5c/3ba7d12e7a79566f97b8f954400926d7b6eb33bcdccc1315a857f200f1f1/crashtest-0.4.1-py3-none-any.whl", hash = "sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5", size = 7558 }, ] -[[distribution]] +[[package]] name = "cryptography" version = "43.0.0" source = { registry = "https://pypi.org/simple" } @@ -230,7 +230,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e6/3d/696e7a0f04555c58a2813d47aaa78cb5ba863c1f453c74a4f45ae772b054/cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709", size = 3081462 }, ] -[[distribution]] +[[package]] name = "dep-logic" version = "0.4.4" source = { registry = "https://pypi.org/simple" } @@ -242,7 +242,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/29/91/2a9fd596cdaec9dc0f52179c08c6b3a18ae6487a3d4a90dace72cb4686f3/dep_logic-0.4.4-py3-none-any.whl", hash = "sha256:3f47301f9a8230443d3df7d7f9bdc33d35d8591a14112d36f221b0e33810d3ae", size = 33717 }, ] -[[distribution]] +[[package]] name = "distlib" version = "0.3.8" source = { registry = "https://pypi.org/simple" } @@ -251,7 +251,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8e/41/9307e4f5f9976bc8b7fea0b66367734e8faf3ec84bc0d412d8cfabbb66cd/distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784", size = 468850 }, ] -[[distribution]] +[[package]] name = "dulwich" version = "0.21.7" source = { registry = "https://pypi.org/simple" } @@ -280,7 +280,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/f9/5ff1ac14c843b1b8047ba48e23d5f266a60c931fe50f29c4ac3c78b7a618/dulwich-0.21.7-cp312-cp312-win_amd64.whl", hash = "sha256:6bd69921fdd813b7469a3c77bc75c1783cc1d8d72ab15a406598e5a3ba1a1503", size = 487654 }, ] -[[distribution]] +[[package]] name = "fastjsonschema" version = "2.20.0" source = { registry = "https://pypi.org/simple" } @@ -289,7 +289,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6d/ca/086311cdfc017ec964b2436fe0c98c1f4efcb7e4c328956a22456e497655/fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a", size = 23543 }, ] -[[distribution]] +[[package]] name = "filelock" version = "3.15.4" source = { registry = "https://pypi.org/simple" } @@ -298,7 +298,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/f0/48285f0262fe47103a4a45972ed2f9b93e4c80b8fd609fa98da78b2a5706/filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7", size = 16159 }, ] -[[distribution]] +[[package]] name = "findpython" version = "0.6.1" source = { registry = "https://pypi.org/simple" } @@ -310,7 +310,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c2/a8/26dc9afd5502fd07d2694143b5084ed9ad87df09588af7e6992afe2a227b/findpython-0.6.1-py3-none-any.whl", hash = "sha256:1fb4d709205de185b0561900267dfff64a841c910fe28d6038b2394ff925a81a", size = 20566 }, ] -[[distribution]] +[[package]] name = "h11" version = "0.14.0" source = { registry = "https://pypi.org/simple" } @@ -319,7 +319,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 }, ] -[[distribution]] +[[package]] name = "hishel" version = "0.0.30" source = { registry = "https://pypi.org/simple" } @@ -332,7 +332,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/3b/93213764caad170daf4984ca39410417251aafa386bb24784f9fb75fc65b/hishel-0.0.30-py3-none-any.whl", hash = "sha256:0c73a779a6b554b52dff75e5962057df25764fd798c31b9435ce6398b1b171c8", size = 40464 }, ] -[[distribution]] +[[package]] name = "httpcore" version = "1.0.5" source = { registry = "https://pypi.org/simple" } @@ -345,7 +345,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/d4/e5d7e4f2174f8a4d63c8897d79eb8fe2503f7ecc03282fee1fa2719c2704/httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5", size = 77926 }, ] -[[distribution]] +[[package]] name = "httpx" version = "0.27.0" source = { registry = "https://pypi.org/simple" } @@ -366,7 +366,7 @@ socks = [ { name = "socksio" }, ] -[[distribution]] +[[package]] name = "idna" version = "3.7" source = { registry = "https://pypi.org/simple" } @@ -375,7 +375,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", size = 66836 }, ] -[[distribution]] +[[package]] name = "importlib-metadata" version = "8.2.0" source = { registry = "https://pypi.org/simple" } @@ -387,7 +387,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/82/47/bb25ec04985d0693da478797c3d8c1092b140f3a53ccb984fbbd38affa5b/importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369", size = 25920 }, ] -[[distribution]] +[[package]] name = "installer" version = "0.7.0" source = { registry = "https://pypi.org/simple" } @@ -396,7 +396,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl", hash = "sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53", size = 453838 }, ] -[[distribution]] +[[package]] name = "jaraco-classes" version = "3.4.0" source = { registry = "https://pypi.org/simple" } @@ -408,7 +408,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777 }, ] -[[distribution]] +[[package]] name = "jeepney" version = "0.8.0" source = { registry = "https://pypi.org/simple" } @@ -417,7 +417,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755", size = 48435 }, ] -[[distribution]] +[[package]] name = "keyring" version = "24.3.1" source = { registry = "https://pypi.org/simple" } @@ -433,7 +433,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7c/23/d557507915181687e4a613e1c8a01583fd6d7cb7590e1f039e357fe3b304/keyring-24.3.1-py3-none-any.whl", hash = "sha256:df38a4d7419a6a60fea5cef1e45a948a3e8430dd12ad88b0f423c5c143906218", size = 38092 }, ] -[[distribution]] +[[package]] name = "markdown-it-py" version = "3.0.0" source = { registry = "https://pypi.org/simple" } @@ -445,7 +445,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, ] -[[distribution]] +[[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } @@ -454,7 +454,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, ] -[[distribution]] +[[package]] name = "more-itertools" version = "10.3.0" source = { registry = "https://pypi.org/simple" } @@ -463,7 +463,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/23/2d1cdb0427aecb2b150dc2ac2d15400990c4f05585b3fbc1b5177d74d7fb/more_itertools-10.3.0-py3-none-any.whl", hash = "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320", size = 59245 }, ] -[[distribution]] +[[package]] name = "msgpack" version = "1.0.8" source = { registry = "https://pypi.org/simple" } @@ -493,7 +493,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/72/5c/5facaa9b5d1b3ead831697daacf37d485af312bbe483ac6ecf43a3dd777f/msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd", size = 75348 }, ] -[[distribution]] +[[package]] name = "packaging" version = "24.1" source = { registry = "https://pypi.org/simple" } @@ -502,7 +502,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", size = 53985 }, ] -[[distribution]] +[[package]] name = "pbs-installer" version = "2024.4.24" source = { registry = "https://pypi.org/simple" } @@ -511,7 +511,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a9/8a/2dfb94b64a32c38680f1795057d5936aef9da244e703ce0bb2af7c5d618c/pbs_installer-2024.4.24-py3-none-any.whl", hash = "sha256:f8291f0231003d279d0de8fde88fa87b7c6d7fabc2671235113cf67513ff74f5", size = 42315 }, ] -[[distribution]] +[[package]] name = "pdm" version = "2.17.1" source = { registry = "https://pypi.org/simple" } @@ -542,7 +542,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/60/fe/0c821af8bf01c3b908dae9aa46313c1d4b95cfb06bbf3441bb4c6e388c82/pdm-2.17.1-py3-none-any.whl", hash = "sha256:2ef7bb1424217f267b81e40f9c5326af27a519e9535e3272aa3b454ad5ab096c", size = 268654 }, ] -[[distribution]] +[[package]] name = "pexpect" version = "4.9.0" source = { registry = "https://pypi.org/simple" } @@ -554,7 +554,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, ] -[[distribution]] +[[package]] name = "pip" version = "24.1.2" source = { registry = "https://pypi.org/simple" } @@ -563,7 +563,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/54/0c1c068542cee73d8863336e974fc881e608d0170f3af15d0c0f28644531/pip-24.1.2-py3-none-any.whl", hash = "sha256:7cd207eed4c60b0f411b444cd1464198fe186671c323b6cd6d433ed80fc9d247", size = 1824406 }, ] -[[distribution]] +[[package]] name = "pip-tools" version = "7.4.1" source = { registry = "https://pypi.org/simple" } @@ -580,7 +580,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0d/dc/38f4ce065e92c66f058ea7a368a9c5de4e702272b479c0992059f7693941/pip_tools-7.4.1-py3-none-any.whl", hash = "sha256:4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9", size = 61235 }, ] -[[distribution]] +[[package]] name = "pipx" version = "1.6.0" source = { registry = "https://pypi.org/simple" } @@ -596,7 +596,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/db/2f/ec2454e6784168837dfe0ffad5080c1c2bdf37ee052999cabfd849a56338/pipx-1.6.0-py3-none-any.whl", hash = "sha256:760889dc3aeed7bf4024973bf22ca0c2a891003f52389159ab5cb0c57d9ebff4", size = 77756 }, ] -[[distribution]] +[[package]] name = "pkginfo" version = "1.11.1" source = { registry = "https://pypi.org/simple" } @@ -605,7 +605,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/38/d617739840a2f576e400f03fea0a75703f93cc274002635b4b998bbb9de4/pkginfo-1.11.1-py3-none-any.whl", hash = "sha256:bfa76a714fdfc18a045fcd684dbfc3816b603d9d075febef17cb6582bea29573", size = 31755 }, ] -[[distribution]] +[[package]] name = "platformdirs" version = "4.2.2" source = { registry = "https://pypi.org/simple" } @@ -614,7 +614,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", size = 18146 }, ] -[[distribution]] +[[package]] name = "poetry" version = "1.8.3" source = { registry = "https://pypi.org/simple" } @@ -647,7 +647,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d8/54/9a86a66a7c2c922bfd867cc02c8c27587bd2571120a8fecb71167d7778dd/poetry-1.8.3-py3-none-any.whl", hash = "sha256:88191c69b08d06f9db671b793d68f40048e8904c0718404b63dcc2b5aec62d13", size = 249916 }, ] -[[distribution]] +[[package]] name = "poetry-core" version = "1.9.0" source = { registry = "https://pypi.org/simple" } @@ -656,7 +656,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a1/8d/85fcf9bcbfefcc53a1402450f28e5acf39dcfde3aabb996a1d98481ac829/poetry_core-1.9.0-py3-none-any.whl", hash = "sha256:4e0c9c6ad8cf89956f03b308736d84ea6ddb44089d16f2adc94050108ec1f5a1", size = 309460 }, ] -[[distribution]] +[[package]] name = "poetry-plugin-export" version = "1.8.0" source = { registry = "https://pypi.org/simple" } @@ -669,7 +669,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/55/1dd7c8c955d71f58a9202c37bf8e037d697dc9f11a9a2ade65663251ee44/poetry_plugin_export-1.8.0-py3-none-any.whl", hash = "sha256:adbe232cfa0cc04991ea3680c865cf748bff27593b9abcb1f35fb50ed7ba2c22", size = 10795 }, ] -[[distribution]] +[[package]] name = "ptyprocess" version = "0.7.0" source = { registry = "https://pypi.org/simple" } @@ -678,7 +678,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, ] -[[distribution]] +[[package]] name = "pycparser" version = "2.22" source = { registry = "https://pypi.org/simple" } @@ -687,7 +687,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, ] -[[distribution]] +[[package]] name = "pygments" version = "2.18.0" source = { registry = "https://pypi.org/simple" } @@ -696,7 +696,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, ] -[[distribution]] +[[package]] name = "pyproject-hooks" version = "1.1.0" source = { registry = "https://pypi.org/simple" } @@ -705,7 +705,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/f3/431b9d5fe7d14af7a32340792ef43b8a714e7726f1d7b69cc4e8e7a3f1d7/pyproject_hooks-1.1.0-py3-none-any.whl", hash = "sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2", size = 9184 }, ] -[[distribution]] +[[package]] name = "python-dotenv" version = "1.0.1" source = { registry = "https://pypi.org/simple" } @@ -714,7 +714,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, ] -[[distribution]] +[[package]] name = "pywin32-ctypes" version = "0.2.2" source = { registry = "https://pypi.org/simple" } @@ -723,7 +723,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a4/bc/78b2c00cc64c31dbb3be42a0e8600bcebc123ad338c3b714754d668c7c2d/pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7", size = 30152 }, ] -[[distribution]] +[[package]] name = "rapidfuzz" version = "3.9.4" source = { registry = "https://pypi.org/simple" } @@ -761,7 +761,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/08/e4/5ff70319bfb20408cd0cee7cf822698155a7b44761d60cca64f13983fdb1/rapidfuzz-3.9.4-cp312-cp312-win_arm64.whl", hash = "sha256:f2d2846f3980445864c7e8b8818a29707fcaff2f0261159ef6b7bd27ba139296", size = 850201 }, ] -[[distribution]] +[[package]] name = "requests" version = "2.32.3" source = { registry = "https://pypi.org/simple" } @@ -776,7 +776,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, ] -[[distribution]] +[[package]] name = "requests-toolbelt" version = "1.0.0" source = { registry = "https://pypi.org/simple" } @@ -788,7 +788,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481 }, ] -[[distribution]] +[[package]] name = "resolvelib" version = "1.0.1" source = { registry = "https://pypi.org/simple" } @@ -797,7 +797,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/fc/e9ccf0521607bcd244aa0b3fbd574f71b65e9ce6a112c83af988bbbe2e23/resolvelib-1.0.1-py2.py3-none-any.whl", hash = "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf", size = 17194 }, ] -[[distribution]] +[[package]] name = "rich" version = "13.7.1" source = { registry = "https://pypi.org/simple" } @@ -810,7 +810,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222", size = 240681 }, ] -[[distribution]] +[[package]] name = "secretstorage" version = "3.3.3" source = { registry = "https://pypi.org/simple" } @@ -823,7 +823,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99", size = 15221 }, ] -[[distribution]] +[[package]] name = "setuptools" version = "71.1.0" source = { registry = "https://pypi.org/simple" } @@ -832,7 +832,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/51/a0/ee460cc54e68afcf33190d198299c9579a5eafeadef0016ae8563237ccb6/setuptools-71.1.0-py3-none-any.whl", hash = "sha256:33874fdc59b3188304b2e7c80d9029097ea31627180896fb549c578ceb8a0855", size = 2341722 }, ] -[[distribution]] +[[package]] name = "shellingham" version = "1.5.4" source = { registry = "https://pypi.org/simple" } @@ -841,7 +841,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, ] -[[distribution]] +[[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } @@ -850,7 +850,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, ] -[[distribution]] +[[package]] name = "socksio" version = "1.0.0" source = { registry = "https://pypi.org/simple" } @@ -859,7 +859,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/37/c3/6eeb6034408dac0fa653d126c9204ade96b819c936e136c5e8a6897eee9c/socksio-1.0.0-py3-none-any.whl", hash = "sha256:95dc1f15f9b34e8d7b16f06d74b8ccf48f609af32ab33c608d08761c5dcbb1f3", size = 12763 }, ] -[[distribution]] +[[package]] name = "tomli" version = "2.0.1" source = { registry = "https://pypi.org/simple" } @@ -868,7 +868,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", size = 12757 }, ] -[[distribution]] +[[package]] name = "tomli-w" version = "1.0.0" source = { registry = "https://pypi.org/simple" } @@ -877,7 +877,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/01/1da9c66ecb20f31ed5aa5316a957e0b1a5e786a0d9689616ece4ceaf1321/tomli_w-1.0.0-py3-none-any.whl", hash = "sha256:9f2a07e8be30a0729e533ec968016807069991ae2fd921a78d42f429ae5f4463", size = 5984 }, ] -[[distribution]] +[[package]] name = "tomlkit" version = "0.13.0" source = { registry = "https://pypi.org/simple" } @@ -886,7 +886,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fd/7c/b753bf603852cab0a660da6e81f4ea5d2ca0f0b2b4870766d7aa9bceb7a2/tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264", size = 37770 }, ] -[[distribution]] +[[package]] name = "trove-classifiers" version = "2024.7.2" source = { registry = "https://pypi.org/simple" } @@ -895,7 +895,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0f/b0/09794439a62a7dc18bffdbf145aaf50297fd994890b11da27a13e376b947/trove_classifiers-2024.7.2-py3-none-any.whl", hash = "sha256:ccc57a33717644df4daca018e7ec3ef57a835c48e96a1e71fc07eb7edac67af6", size = 13468 }, ] -[[distribution]] +[[package]] name = "truststore" version = "0.9.1" source = { registry = "https://pypi.org/simple" } @@ -904,7 +904,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4b/ba/362829faff5c470defbb2fc574961e1d86427de26ee25ed38d5c3ceec00d/truststore-0.9.1-py3-none-any.whl", hash = "sha256:7f5b447d68318d966428131fc1c00442cca3a2d581a3986143558f007efba0b4", size = 17161 }, ] -[[distribution]] +[[package]] name = "typing-extensions" version = "4.12.2" source = { registry = "https://pypi.org/simple" } @@ -913,7 +913,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, ] -[[distribution]] +[[package]] name = "unearth" version = "0.16.1" source = { registry = "https://pypi.org/simple" } @@ -926,7 +926,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f3/08/ad4427cf0d0e19053d7e0b3405f2e6dcb697fb9bff61335a2024729402e2/unearth-0.16.1-py3-none-any.whl", hash = "sha256:5a598ac1a3f185144fadc9de47f1043bff805c36118ffc40f81ef98ff22e8e37", size = 47161 }, ] -[[distribution]] +[[package]] name = "urllib3" version = "2.2.2" source = { registry = "https://pypi.org/simple" } @@ -935,7 +935,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", size = 121444 }, ] -[[distribution]] +[[package]] name = "userpath" version = "1.9.2" source = { registry = "https://pypi.org/simple" } @@ -947,7 +947,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/43/99/3ec6335ded5b88c2f7ed25c56ffd952546f7ed007ffb1e1539dc3b57015a/userpath-1.9.2-py3-none-any.whl", hash = "sha256:2cbf01a23d655a1ff8fc166dfb78da1b641d1ceabf0fe5f970767d380b14e89d", size = 9065 }, ] -[[distribution]] +[[package]] name = "virtualenv" version = "20.26.3" source = { registry = "https://pypi.org/simple" } @@ -961,7 +961,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/4d/410156100224c5e2f0011d435e477b57aed9576fc7fe137abcf14ec16e11/virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589", size = 5684792 }, ] -[[distribution]] +[[package]] name = "wheel" version = "0.43.0" source = { registry = "https://pypi.org/simple" } @@ -970,7 +970,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81", size = 65775 }, ] -[[distribution]] +[[package]] name = "xattr" version = "1.1.0" source = { registry = "https://pypi.org/simple" } @@ -999,7 +999,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/0d/7b819cdbb3d80d60ff5dc049f00949224607263c72aebb0679cfe468f985/xattr-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:47a3bdfe034b4fdb70e5941d97037405e3904accc28e10dbef6d1c9061fb6fd7", size = 41379 }, ] -[[distribution]] +[[package]] name = "zipp" version = "3.19.2" source = { registry = "https://pypi.org/simple" }