mirror of
https://github.com/astral-sh/uv.git
synced 2025-10-17 13:58:29 +00:00
Concurrent progress bars (#3252)
## Summary
Implements concurrent progress bars. Resolves
https://github.com/astral-sh/uv/issues/1209.
## Test Plan
b21bdfbb
-8817-4873-a65c-16c9e8c7c460
This commit is contained in:
parent
70cbc32565
commit
7dc322665c
5 changed files with 477 additions and 230 deletions
|
@ -20,11 +20,21 @@ pub trait Reporter: Send + Sync {
|
|||
/// Callback to invoke when a source distribution build is complete.
|
||||
fn on_build_complete(&self, source: &BuildableSource, id: usize);
|
||||
|
||||
/// Callback to invoke when a download is kicked off.
|
||||
fn on_download_start(&self, name: &PackageName, size: Option<u64>) -> usize;
|
||||
|
||||
/// Callback to invoke when a download makes progress (i.e. some number of bytes are
|
||||
/// downloaded).
|
||||
fn on_download_progress(&self, id: usize, bytes: u64);
|
||||
|
||||
/// Callback to invoke when a download is complete.
|
||||
fn on_download_complete(&self, name: &PackageName, id: usize);
|
||||
|
||||
/// Callback to invoke when a repository checkout begins.
|
||||
fn on_checkout_start(&self, url: &Url, rev: &str) -> usize;
|
||||
|
||||
/// Callback to invoke when a repository checkout completes.
|
||||
fn on_checkout_complete(&self, url: &Url, rev: &str, index: usize);
|
||||
fn on_checkout_complete(&self, url: &Url, rev: &str, id: usize);
|
||||
}
|
||||
|
||||
/// A facade for converting from [`Reporter`] to [`uv_distribution::Reporter`].
|
||||
|
@ -45,7 +55,19 @@ impl uv_distribution::Reporter for Facade {
|
|||
self.reporter.on_checkout_start(url, rev)
|
||||
}
|
||||
|
||||
fn on_checkout_complete(&self, url: &Url, rev: &str, index: usize) {
|
||||
self.reporter.on_checkout_complete(url, rev, index);
|
||||
fn on_checkout_complete(&self, url: &Url, rev: &str, id: usize) {
|
||||
self.reporter.on_checkout_complete(url, rev, id);
|
||||
}
|
||||
|
||||
fn on_download_start(&self, name: &PackageName, size: Option<u64>) -> usize {
|
||||
self.reporter.on_download_start(name, size)
|
||||
}
|
||||
|
||||
fn on_download_progress(&self, id: usize, bytes: u64) {
|
||||
self.reporter.on_download_progress(id, bytes);
|
||||
}
|
||||
|
||||
fn on_download_complete(&self, name: &PackageName, id: usize) {
|
||||
self.reporter.on_download_complete(name, id);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue