mirror of
https://github.com/astral-sh/uv.git
synced 2025-12-09 03:08:53 +00:00
Remove clone from RegistryWheelIndex (#937)
Doesn't need to own the package names.
This commit is contained in:
parent
2a69b273ce
commit
0f592b67bb
2 changed files with 8 additions and 8 deletions
|
|
@ -142,16 +142,16 @@ async fn install_chunk(
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
let mut registry_index = RegistryWheelIndex::new(build_dispatch.cache(), tags, index_locations);
|
let mut registry_index = RegistryWheelIndex::new(build_dispatch.cache(), tags, index_locations);
|
||||||
let (cached, uncached): (Vec<_>, Vec<_>) = dists.into_iter().partition_map(|dist| {
|
let (cached, uncached): (Vec<_>, Vec<_>) = dists.iter().partition_map(|dist| {
|
||||||
// We always want the wheel for the latest version not whatever matching is in cache.
|
// We always want the wheel for the latest version not whatever matching is in cache.
|
||||||
let VersionOrUrl::Version(version) = dist.version_or_url() else {
|
let VersionOrUrl::Version(version) = dist.version_or_url() else {
|
||||||
unreachable!();
|
unreachable!("Only registry distributions are supported");
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(cached) = registry_index.get_version(dist.name(), version) {
|
if let Some(cached) = registry_index.get_version(dist.name(), version) {
|
||||||
Either::Left(CachedDist::Registry(cached.clone()))
|
Either::Left(CachedDist::Registry(cached.clone()))
|
||||||
} else {
|
} else {
|
||||||
Either::Right(dist)
|
Either::Right(dist.clone())
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
info!("Cached: {}, Uncached {}", cached.len(), uncached.len());
|
info!("Cached: {}, Uncached {}", cached.len(), uncached.len());
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ pub struct RegistryWheelIndex<'a> {
|
||||||
cache: &'a Cache,
|
cache: &'a Cache,
|
||||||
tags: &'a Tags,
|
tags: &'a Tags,
|
||||||
index_locations: &'a IndexLocations,
|
index_locations: &'a IndexLocations,
|
||||||
index: FxHashMap<PackageName, BTreeMap<Version, CachedRegistryDist>>,
|
index: FxHashMap<&'a PackageName, BTreeMap<Version, CachedRegistryDist>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> RegistryWheelIndex<'a> {
|
impl<'a> RegistryWheelIndex<'a> {
|
||||||
|
|
@ -38,7 +38,7 @@ impl<'a> RegistryWheelIndex<'a> {
|
||||||
/// If the package is not yet indexed, this will index the package by reading from the cache.
|
/// If the package is not yet indexed, this will index the package by reading from the cache.
|
||||||
pub fn get(
|
pub fn get(
|
||||||
&mut self,
|
&mut self,
|
||||||
name: &PackageName,
|
name: &'a PackageName,
|
||||||
) -> impl Iterator<Item = (&Version, &CachedRegistryDist)> {
|
) -> impl Iterator<Item = (&Version, &CachedRegistryDist)> {
|
||||||
self.get_impl(name).iter().rev()
|
self.get_impl(name).iter().rev()
|
||||||
}
|
}
|
||||||
|
|
@ -48,15 +48,15 @@ impl<'a> RegistryWheelIndex<'a> {
|
||||||
/// If the package is not yet indexed, this will index the package by reading from the cache.
|
/// If the package is not yet indexed, this will index the package by reading from the cache.
|
||||||
pub fn get_version(
|
pub fn get_version(
|
||||||
&mut self,
|
&mut self,
|
||||||
name: &PackageName,
|
name: &'a PackageName,
|
||||||
version: &Version,
|
version: &Version,
|
||||||
) -> Option<&CachedRegistryDist> {
|
) -> Option<&CachedRegistryDist> {
|
||||||
self.get_impl(name).get(version)
|
self.get_impl(name).get(version)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get an entry in the index.
|
/// Get an entry in the index.
|
||||||
fn get_impl(&mut self, name: &PackageName) -> &BTreeMap<Version, CachedRegistryDist> {
|
fn get_impl(&mut self, name: &'a PackageName) -> &BTreeMap<Version, CachedRegistryDist> {
|
||||||
let versions = match self.index.entry(name.clone()) {
|
let versions = match self.index.entry(name) {
|
||||||
Entry::Occupied(entry) => entry.into_mut(),
|
Entry::Occupied(entry) => entry.into_mut(),
|
||||||
Entry::Vacant(entry) => entry.insert(Self::index(
|
Entry::Vacant(entry) => entry.insert(Self::index(
|
||||||
name,
|
name,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue