Use xput for the calculation of eta

Refer to #24 for the discussion.
This commit is contained in:
Georgios Verigakis
2016-03-08 09:04:18 +02:00
parent e61e49bbf4
commit 0b668811f9

View File

@@ -33,7 +33,7 @@ class Infinite(object):
self.index = 0 self.index = 0
self.start_ts = time() self.start_ts = time()
self._ts = self.start_ts self._ts = self.start_ts
self._dt = deque(maxlen=self.sma_window) self._xput = deque(maxlen=self.sma_window)
self._pending = 0 self._pending = 0
for key, val in kwargs.items(): for key, val in kwargs.items():
setattr(self, key, val) setattr(self, key, val)
@@ -45,7 +45,8 @@ class Infinite(object):
@property @property
def avg(self): def avg(self):
return sum(self._dt) / len(self._dt) if self._dt else 0 """Average throughput"""
return sum(self._xput) / len(self._xput) if self._xput else 0
@property @property
def elapsed(self): def elapsed(self):
@@ -71,7 +72,7 @@ class Infinite(object):
if dt < self.time_threshold: if dt < self.time_threshold:
self._pending += n self._pending += n
else: else:
self._dt.append(dt / (n + self._pending)) self._xput.append((n + self._pending) / dt)
self._ts = now self._ts = now
self._pending = 0 self._pending = 0
@@ -94,7 +95,8 @@ class Progress(Infinite):
@property @property
def eta(self): def eta(self):
return int(ceil(self.avg * self.remaining)) avg = self.avg
return int(ceil(self.remaining / avg)) if avg else 0
@property @property
def eta_td(self): def eta_td(self):