mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 13:25:00 +00:00
Use distributions for Reporter
signatures (#266)
This commit is contained in:
parent
bee1b0f5ad
commit
079b685c8c
6 changed files with 34 additions and 30 deletions
|
@ -1,8 +1,9 @@
|
|||
use indicatif::{ProgressBar, ProgressStyle};
|
||||
use pep440_rs::Version;
|
||||
use std::time::Duration;
|
||||
|
||||
use pep440_rs::Version;
|
||||
use puffin_distribution::RemoteDistribution;
|
||||
use puffin_distribution::{CachedDistribution, RemoteDistribution};
|
||||
use puffin_package::dist_info_name::DistInfoName;
|
||||
use puffin_package::package_name::PackageName;
|
||||
|
||||
use crate::printer::Printer;
|
||||
|
@ -32,9 +33,8 @@ impl WheelFinderReporter {
|
|||
}
|
||||
|
||||
impl puffin_resolver::WheelFinderReporter for WheelFinderReporter {
|
||||
fn on_progress(&self, package: &RemoteDistribution) {
|
||||
self.progress
|
||||
.set_message(format!("{}=={}", package.name(), package.version()));
|
||||
fn on_progress(&self, wheel: &RemoteDistribution) {
|
||||
self.progress.set_message(format!("{wheel}"));
|
||||
self.progress.inc(1);
|
||||
}
|
||||
|
||||
|
@ -68,8 +68,8 @@ impl UnzipReporter {
|
|||
}
|
||||
|
||||
impl puffin_installer::UnzipReporter for UnzipReporter {
|
||||
fn on_unzip_progress(&self, name: &PackageName, version: &Version) {
|
||||
self.progress.set_message(format!("{name}=={version}"));
|
||||
fn on_unzip_progress(&self, wheel: &RemoteDistribution) {
|
||||
self.progress.set_message(format!("{wheel}"));
|
||||
self.progress.inc(1);
|
||||
}
|
||||
|
||||
|
@ -103,8 +103,8 @@ impl DownloadReporter {
|
|||
}
|
||||
|
||||
impl puffin_installer::DownloadReporter for DownloadReporter {
|
||||
fn on_download_progress(&self, name: &PackageName, version: &Version) {
|
||||
self.progress.set_message(format!("{name}=={version}"));
|
||||
fn on_download_progress(&self, wheel: &RemoteDistribution) {
|
||||
self.progress.set_message(format!("{wheel}"));
|
||||
self.progress.inc(1);
|
||||
}
|
||||
|
||||
|
@ -138,8 +138,8 @@ impl InstallReporter {
|
|||
}
|
||||
|
||||
impl puffin_installer::InstallReporter for InstallReporter {
|
||||
fn on_install_progress(&self, name: &PackageName, version: &Version) {
|
||||
self.progress.set_message(format!("{name}=={version}"));
|
||||
fn on_install_progress(&self, wheel: &CachedDistribution) {
|
||||
self.progress.set_message(format!("{wheel}"));
|
||||
self.progress.inc(1);
|
||||
}
|
||||
|
||||
|
@ -168,8 +168,13 @@ impl From<Printer> for ResolverReporter {
|
|||
}
|
||||
|
||||
impl puffin_resolver::ResolverReporter for ResolverReporter {
|
||||
fn on_progress(&self, name: &PackageName, version: &Version) {
|
||||
self.progress.set_message(format!("{name}=={version}"));
|
||||
fn on_progress(&self, name: &PackageName, extra: Option<&DistInfoName>, version: &Version) {
|
||||
if let Some(extra) = extra {
|
||||
self.progress
|
||||
.set_message(format!("{name}[{extra}]=={version}"));
|
||||
} else {
|
||||
self.progress.set_message(format!("{name}=={version}"));
|
||||
}
|
||||
}
|
||||
|
||||
fn on_complete(&self) {
|
||||
|
|
|
@ -8,10 +8,8 @@ use tokio_util::compat::FuturesAsyncReadCompatExt;
|
|||
use tracing::debug;
|
||||
use url::Url;
|
||||
|
||||
use pep440_rs::Version;
|
||||
use puffin_client::RegistryClient;
|
||||
use puffin_distribution::RemoteDistribution;
|
||||
use puffin_package::package_name::PackageName;
|
||||
|
||||
pub struct Downloader<'a> {
|
||||
client: &'a RegistryClient,
|
||||
|
@ -64,7 +62,7 @@ impl<'a> Downloader<'a> {
|
|||
let result = result?;
|
||||
|
||||
if let Some(reporter) = self.reporter.as_ref() {
|
||||
reporter.on_download_progress(result.remote.name(), result.remote.version());
|
||||
reporter.on_download_progress(&result.remote);
|
||||
}
|
||||
|
||||
downloads.push(result);
|
||||
|
@ -127,7 +125,7 @@ async fn fetch_wheel(
|
|||
|
||||
pub trait Reporter: Send + Sync {
|
||||
/// Callback to invoke when a wheel is downloaded.
|
||||
fn on_download_progress(&self, name: &PackageName, version: &Version);
|
||||
fn on_download_progress(&self, wheel: &RemoteDistribution);
|
||||
|
||||
/// Callback to invoke when the operation is complete.
|
||||
fn on_download_complete(&self);
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
use anyhow::{Context, Error, Result};
|
||||
use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
|
||||
|
||||
use pep440_rs::Version;
|
||||
use puffin_distribution::CachedDistribution;
|
||||
use puffin_interpreter::Virtualenv;
|
||||
use puffin_package::package_name::PackageName;
|
||||
|
||||
pub struct Installer<'a> {
|
||||
venv: &'a Virtualenv,
|
||||
|
@ -52,7 +50,7 @@ impl<'a> Installer<'a> {
|
|||
})?;
|
||||
|
||||
if let Some(reporter) = self.reporter.as_ref() {
|
||||
reporter.on_install_progress(wheel.name(), wheel.version());
|
||||
reporter.on_install_progress(wheel);
|
||||
}
|
||||
|
||||
Ok::<(), Error>(())
|
||||
|
@ -63,7 +61,7 @@ impl<'a> Installer<'a> {
|
|||
|
||||
pub trait Reporter: Send + Sync {
|
||||
/// Callback to invoke when a dependency is resolved.
|
||||
fn on_install_progress(&self, name: &PackageName, version: &Version);
|
||||
fn on_install_progress(&self, wheel: &CachedDistribution);
|
||||
|
||||
/// Callback to invoke when the resolution is complete.
|
||||
fn on_install_complete(&self);
|
||||
|
|
|
@ -7,9 +7,7 @@ use rayon::iter::ParallelIterator;
|
|||
use tracing::debug;
|
||||
use zip::ZipArchive;
|
||||
|
||||
use pep440_rs::Version;
|
||||
use puffin_distribution::CachedDistribution;
|
||||
use puffin_package::package_name::PackageName;
|
||||
use puffin_distribution::{CachedDistribution, RemoteDistribution};
|
||||
|
||||
use crate::cache::WheelCache;
|
||||
use crate::downloader::InMemoryDistribution;
|
||||
|
@ -81,7 +79,7 @@ impl Unzipper {
|
|||
));
|
||||
|
||||
if let Some(reporter) = self.reporter.as_ref() {
|
||||
reporter.on_unzip_progress(remote.name(), remote.version());
|
||||
reporter.on_unzip_progress(&remote);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -144,7 +142,7 @@ fn unzip_wheel(wheel: InMemoryDistribution, target: &Path) -> Result<()> {
|
|||
|
||||
pub trait Reporter: Send + Sync {
|
||||
/// Callback to invoke when a wheel is unzipped.
|
||||
fn on_unzip_progress(&self, name: &PackageName, version: &Version);
|
||||
fn on_unzip_progress(&self, wheel: &RemoteDistribution);
|
||||
|
||||
/// Callback to invoke when the operation is complete.
|
||||
fn on_unzip_complete(&self);
|
||||
|
|
|
@ -613,8 +613,8 @@ impl<'a, Context: BuildContext + Sync> Resolver<'a, Context> {
|
|||
|
||||
fn on_progress(&self, package: &PubGrubPackage, version: &PubGrubVersion) {
|
||||
if let Some(reporter) = self.reporter.as_ref() {
|
||||
if let PubGrubPackage::Package(package_name, _) = package {
|
||||
reporter.on_progress(package_name, version.into());
|
||||
if let PubGrubPackage::Package(package_name, extra) = package {
|
||||
reporter.on_progress(package_name, extra.as_ref(), version.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -628,7 +628,12 @@ impl<'a, Context: BuildContext + Sync> Resolver<'a, Context> {
|
|||
|
||||
pub trait Reporter: Send + Sync {
|
||||
/// Callback to invoke when a dependency is resolved.
|
||||
fn on_progress(&self, name: &PackageName, version: &pep440_rs::Version);
|
||||
fn on_progress(
|
||||
&self,
|
||||
name: &PackageName,
|
||||
extra: Option<&DistInfoName>,
|
||||
version: &pep440_rs::Version,
|
||||
);
|
||||
|
||||
/// Callback to invoke when the resolution is complete.
|
||||
fn on_complete(&self);
|
||||
|
|
|
@ -162,7 +162,7 @@ enum Response {
|
|||
|
||||
pub trait Reporter: Send + Sync {
|
||||
/// Callback to invoke when a package is resolved to a wheel.
|
||||
fn on_progress(&self, package: &RemoteDistribution);
|
||||
fn on_progress(&self, wheel: &RemoteDistribution);
|
||||
|
||||
/// Callback to invoke when the resolution is complete.
|
||||
fn on_complete(&self);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue