progress bar format 0B/s speed nicer

This commit is contained in:
mozbugbox 2014-02-23 14:46:17 +08:00
parent fb2bc20a5e
commit 79867ab489

View File

@ -433,13 +433,14 @@ def url_save_chunked(url, filepath, bar, refer = None, is_part = False, faker =
def num2human(num, unit=1024): def num2human(num, unit=1024):
"""Convert integer to human readable units""" """Convert integer to human readable units"""
units = ["K", "M", "G", "T"] units = ["K", "M", "G", "T"]
ret = "{}".format(num) ret_fmt = "{:>6.2f}"
ret = ret_fmt.format(num)
num = float(num) num = float(num)
for i in range(len(units)-1, -1, -1): for i in range(len(units)-1, -1, -1):
div = unit**(i+1) div = unit**(i+1)
if (num/div) > 1: if (num/div) > 1:
ret = "{:>6.2f}{}".format(num/div, units[i]) ret = ret_fmt.format(num/div, units[i])
break break
return ret return ret
@ -477,14 +478,15 @@ class BaseProgressBar:
""" """
if self.last_time < 0: if self.last_time < 0:
self.last_time = time.time() self.last_time = time.time()
return 0 speed = 0
now = time.time() else:
delta_size = self.received - self.last_received now = time.time()
self.last_received = self.received delta_size = self.received - self.last_received
delta_time = now - self.last_time self.last_received = self.received
speed = delta_size / delta_time delta_time = now - self.last_time
self.last_time = now speed = delta_size / delta_time
self.last_speed = speed self.last_time = now
self.last_speed = speed
ret = "{}B/s".format(num2human(speed)) ret = "{}B/s".format(num2human(speed))
return ret return ret