diff --git a/README.rst b/README.rst index ec4f7b9..25a630c 100644 --- a/README.rst +++ b/README.rst @@ -66,6 +66,7 @@ of widgets: - `ReverseBar `_ - `RotatingMarker `_ - `SimpleProgress `_ + - `SmoothingETA `_ - `Timer `_ The progressbar module is very easy to use, yet very powerful. It will also diff --git a/progressbar/widgets.py b/progressbar/widgets.py index ffb201e..82b5b0c 100644 --- a/progressbar/widgets.py +++ b/progressbar/widgets.py @@ -665,7 +665,7 @@ def __init__( ): self.smoothing_parameters = smoothing_parameters or {} self.smoothing_algorithm = smoothing_algorithm( - **(self.smoothing_parameters or {}), + **self.smoothing_parameters, ) ETA.__init__(self, **kwargs) @@ -682,7 +682,7 @@ def __call__( if elapsed is None: # pragma: no branch elapsed = data['time_elapsed'] - self.smoothing_algorithm.update(value, elapsed) + value = self.smoothing_algorithm.update(value, elapsed) return ETA.__call__(self, progress, data, value=value, elapsed=elapsed) diff --git a/tests/test_monitor_progress.py b/tests/test_monitor_progress.py index 90e802a..6f0f148 100644 --- a/tests/test_monitor_progress.py +++ b/tests/test_monitor_progress.py @@ -85,10 +85,10 @@ def test_list_example(testdir) -> None: pprint.pprint(result.stderr.lines, width=70) result.stderr.fnmatch_lines([ ' 0% (0 of 9) | | Elapsed Time: ?:00:00 ETA: --:--:--', - ' 11% (1 of 9) |# | Elapsed Time: ?:00:01 ETA: ?:00:08', - ' 22% (2 of 9) |## | Elapsed Time: ?:00:02 ETA: ?:00:07', - ' 33% (3 of 9) |#### | Elapsed Time: ?:00:03 ETA: ?:00:06', - ' 44% (4 of 9) |##### | Elapsed Time: ?:00:04 ETA: ?:00:05', + ' 11% (1 of 9) |# | Elapsed Time: ?:00:01 ETA: ?:00:16', + ' 22% (2 of 9) |## | Elapsed Time: ?:00:02 ETA: ?:00:11', + ' 33% (3 of 9) |#### | Elapsed Time: ?:00:03 ETA: ?:00:08', + ' 44% (4 of 9) |##### | Elapsed Time: ?:00:04 ETA: ?:00:06', ' 55% (5 of 9) |###### | Elapsed Time: ?:00:05 ETA: ?:00:04', ' 66% (6 of 9) |######## | Elapsed Time: ?:00:06 ETA: ?:00:03', ' 77% (7 of 9) |######### | Elapsed Time: ?:00:07 ETA: ?:00:02', @@ -144,14 +144,14 @@ def test_rapid_updates(testdir) -> None: result.stderr.fnmatch_lines( [ ' 0% (0 of 10) | | Elapsed Time: 0:00:00 ETA: --:--:--', - ' 10% (1 of 10) | | Elapsed Time: 0:00:01 ETA: 0:00:09', - ' 20% (2 of 10) |# | Elapsed Time: 0:00:02 ETA: 0:00:08', - ' 30% (3 of 10) |# | Elapsed Time: 0:00:03 ETA: 0:00:07', - ' 40% (4 of 10) |## | Elapsed Time: 0:00:04 ETA: 0:00:06', - ' 50% (5 of 10) |### | Elapsed Time: 0:00:05 ETA: 0:00:05', - ' 60% (6 of 10) |### | Elapsed Time: 0:00:07 ETA: 0:00:04', - ' 70% (7 of 10) |#### | Elapsed Time: 0:00:09 ETA: 0:00:03', - ' 80% (8 of 10) |#### | Elapsed Time: 0:00:11 ETA: 0:00:02', + ' 10% (1 of 10) | | Elapsed Time: 0:00:01 ETA: 0:00:18', + ' 20% (2 of 10) |# | Elapsed Time: 0:00:02 ETA: 0:00:12', + ' 30% (3 of 10) |# | Elapsed Time: 0:00:03 ETA: 0:00:09', + ' 40% (4 of 10) |## | Elapsed Time: 0:00:04 ETA: 0:00:07', + ' 50% (5 of 10) |### | Elapsed Time: 0:00:05 ETA: 0:00:06', + ' 60% (6 of 10) |### | Elapsed Time: 0:00:07 ETA: 0:00:05', + ' 70% (7 of 10) |#### | Elapsed Time: 0:00:09 ETA: 0:00:04', + ' 80% (8 of 10) |#### | Elapsed Time: 0:00:11 ETA: 0:00:03', ' 90% (9 of 10) |##### | Elapsed Time: 0:00:13 ETA: 0:00:01', '100% (10 of 10) |#####| Elapsed Time: 0:00:15 Time: 0:00:15', ],