Skip to content

Commit 6984576

Browse files
committed
Added smoothing eta to fix #280. The previous algorithm could be really jumpy in some cases and has been replaced with an exponential moving average. Double exponential moving average is also available
1 parent c7c62ff commit 6984576

4 files changed

Lines changed: 301 additions & 245 deletions

File tree

examples.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -644,13 +644,17 @@ def eta_types_demonstration():
644644
progressbar.Percentage(),
645645
' ETA: ',
646646
progressbar.ETA(),
647-
' Adaptive ETA: ',
647+
' Adaptive : ',
648648
progressbar.AdaptiveETA(),
649-
' Absolute ETA: ',
649+
' Smoothing(a=0.1): ',
650+
progressbar.SmoothingETA(smoothing_parameters=dict(alpha=0.1)),
651+
' Smoothing(a=0.9): ',
652+
progressbar.SmoothingETA(smoothing_parameters=dict(alpha=0.9)),
653+
' Absolute: ',
650654
progressbar.AbsoluteETA(),
651-
' Transfer Speed: ',
655+
' Transfer: ',
652656
progressbar.FileTransferSpeed(),
653-
' Adaptive Transfer Speed: ',
657+
' Adaptive T: ',
654658
progressbar.AdaptiveTransferSpeed(),
655659
' ',
656660
progressbar.Bar(),

progressbar/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
from .shortcuts import progressbar
88
from .terminal.stream import LineOffsetStreamWrapper
99
from .utils import len_color, streams
10+
from .algorithms import ExponentialMovingAverage, SmoothingAlgorithm, DoubleExponentialMovingAverage
1011
from .widgets import (
1112
ETA,
1213
AbsoluteETA,
1314
AdaptiveETA,
15+
SmoothingETA,
1416
AdaptiveTransferSpeed,
1517
AnimatedMarker,
1618
Bar,
@@ -36,6 +38,7 @@
3638
Variable,
3739
VariableMixin,
3840
)
41+
from .algorithms import ExponentialMovingAverage, SmoothingAlgorithm
3942

4043
__date__ = str(date.today())
4144
__all__ = [
@@ -46,6 +49,10 @@
4649
'ETA',
4750
'AdaptiveETA',
4851
'AbsoluteETA',
52+
'SmoothingETA',
53+
'SmoothingAlgorithm',
54+
'ExponentialMovingAverage',
55+
'DoubleExponentialMovingAverage',
4956
'DataSize',
5057
'FileTransferSpeed',
5158
'AdaptiveTransferSpeed',

progressbar/bar.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -776,7 +776,7 @@ def default_widgets(self):
776776
' ',
777777
widgets.Timer(**self.widget_kwargs),
778778
' ',
779-
widgets.AdaptiveETA(**self.widget_kwargs),
779+
widgets.SmoothingETA(**self.widget_kwargs),
780780
]
781781
else:
782782
return [
@@ -1071,7 +1071,7 @@ def default_widgets(self):
10711071
' ',
10721072
widgets.Timer(),
10731073
' ',
1074-
widgets.AdaptiveETA(),
1074+
widgets.SmoothingETA(),
10751075
]
10761076
else:
10771077
return [

0 commit comments

Comments
 (0)