From d66c17ce689b637cb6039f10979aa536a2250bee Mon Sep 17 00:00:00 2001 From: peter941221 Date: Mon, 25 May 2026 08:33:14 +0800 Subject: [PATCH 1/2] Handle empty MultiProgressWidget shutdown --- distributed/diagnostics/progressbar.py | 3 ++- distributed/diagnostics/tests/test_progress_widgets.py | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/distributed/diagnostics/progressbar.py b/distributed/diagnostics/progressbar.py index 37b911fc0f..2a5bce8c67 100644 --- a/distributed/diagnostics/progressbar.py +++ b/distributed/diagnostics/progressbar.py @@ -337,8 +337,9 @@ def __init__( **kwargs, ): super().__init__(keys, scheduler, **kwargs) - from ipywidgets import VBox + from ipywidgets import HTML, VBox + self.elapsed_time = HTML("") self.widget = VBox([]) def make_widget(self, all): diff --git a/distributed/diagnostics/tests/test_progress_widgets.py b/distributed/diagnostics/tests/test_progress_widgets.py index 2d4ef1b3f9..5ca432670f 100644 --- a/distributed/diagnostics/tests/test_progress_widgets.py +++ b/distributed/diagnostics/tests/test_progress_widgets.py @@ -92,6 +92,12 @@ def test_values(client): assert p.status == "error" +def test_multi_progressbar_widget_empty_keys_does_not_error(): + p = MultiProgressWidget([]) + p._draw_stop(remaining={}, status="finished") + assert "Finished" in p.elapsed_time.value + + def test_progressbar_done(client): L = [client.submit(inc, i) for i in range(5)] wait(L) From 3ab7019604a1c0133fc7e035e43f8b9484a528d4 Mon Sep 17 00:00:00 2001 From: peter941221 Date: Mon, 25 May 2026 13:17:10 +0800 Subject: [PATCH 2/2] Avoid default client lookup in empty widget test --- distributed/diagnostics/tests/test_progress_widgets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributed/diagnostics/tests/test_progress_widgets.py b/distributed/diagnostics/tests/test_progress_widgets.py index 5ca432670f..f5cb6b7009 100644 --- a/distributed/diagnostics/tests/test_progress_widgets.py +++ b/distributed/diagnostics/tests/test_progress_widgets.py @@ -93,7 +93,7 @@ def test_values(client): def test_multi_progressbar_widget_empty_keys_does_not_error(): - p = MultiProgressWidget([]) + p = MultiProgressWidget([], scheduler="tcp://127.0.0.1:1") p._draw_stop(remaining={}, status="finished") assert "Finished" in p.elapsed_time.value