From: Michael Tremer Date: Wed, 21 Apr 2021 11:13:52 +0000 (+0000) Subject: http: Use C progressbar implementation X-Git-Tag: 0.9.28~1285^2~285 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f44cce7a0f3bf3623b3cbf374b0504e81d83972f;p=pakfire.git http: Use C progressbar implementation Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/http.py b/src/pakfire/http.py index 89207eea9..d7e495d52 100644 --- a/src/pakfire/http.py +++ b/src/pakfire/http.py @@ -32,9 +32,8 @@ import types import urllib.parse import urllib.request -from .ui import progressbar - from .i18n import _ +from . import _pakfire from . import errors from .__version__ import PAKFIRE_VERSION @@ -327,7 +326,7 @@ class Client(object): # Try setting progress bar to correct maximum value # XXX this might need a function in ProgressBar l = self._get_content_length(res) - p.value_max = l + p.set_max(l) # Compute a checksum of each downloaded file h = hashlib.new(checksum_algo or "sha512") @@ -404,7 +403,7 @@ class Client(object): filesize = os.path.getsize(filename) with self._make_progressbar(message) as p: - p.value_max = filesize + p.set_max(filesize) with open(filename, "rb") as f: # This streams the data in small chunks and @@ -449,41 +448,20 @@ class Client(object): return "Basic %s" % authstring.decode("ascii") - def _make_progressbar(self, message=None, **kwargs): - p = progressbar.ProgressBar(**kwargs) + def _make_progressbar(self, message=None): + p = progressbar.ProgressBar() # Show message (e.g. filename) if message: - p.add(message) - - w = progressbar.WidgetError() - p.add(w) - - # Show percentage - w = progressbar.WidgetPercentage(clear_when_finished=True) - p.add(w) - - # Add a bar - w = progressbar.WidgetBar() - p.add(w) - - # Show transfer speed - # XXX just shows the average speed which is probably - # not what we want here. Might want an average over the - # last x (maybe ten?) seconds - w = progressbar.WidgetFileTransferSpeed() - p.add(w) - - # Spacer - p.add("|") - - # Show downloaded bytes - w = progressbar.WidgetBytesReceived() - p.add(w) - - # ETA - w = progressbar.WidgetETA() - p.add(w) + p.add_string(message) + + # Add widgets + p.add_percentage() + p.add_bar() + p.add_transfer_speed() + p.add_string("|") + p.add_bytes_received() + p.add_eta() return p