From 8abe6323f30208d4257f4eb25cceffc8e4855f90 Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Wed, 11 Sep 2024 11:14:49 -0700 Subject: [PATCH] Add number of unscheduled jobs to widget --- adaptive_scheduler/_server_support/database_manager.py | 6 ++++++ adaptive_scheduler/widgets.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/adaptive_scheduler/_server_support/database_manager.py b/adaptive_scheduler/_server_support/database_manager.py index 185a611b..46066cae 100644 --- a/adaptive_scheduler/_server_support/database_manager.py +++ b/adaptive_scheduler/_server_support/database_manager.py @@ -229,6 +229,12 @@ def n_done(self) -> int: return 0 return self._db.count(lambda e: e.is_done) + def n_unscheduled(self) -> int: + """Return the number of jobs that are not scheduled.""" + if self._db is None: + return 0 + return self._db.count(lambda e: not e.is_done and not e.is_pending) + def is_done(self) -> bool: """Return True if all jobs are done.""" return self.n_done() == len(self.fnames) diff --git a/adaptive_scheduler/widgets.py b/adaptive_scheduler/widgets.py index 692e252f..30c39b6b 100644 --- a/adaptive_scheduler/widgets.py +++ b/adaptive_scheduler/widgets.py @@ -474,6 +474,7 @@ def _info_html(run_manager: RunManager) -> str: n_done = sum(1 for job in dbm.as_dicts() if job["is_done"]) n_failed = len(dbm.failed) n_failed_color = "red" if n_failed > 0 else "black" + n_unscheduled = len(dbm.learners) - n_running - n_pending - n_done status = run_manager.status() color = { @@ -498,6 +499,7 @@ def _table_row(i: int, key: str, value: Any) -> str: ("# pending jobs", f'{n_pending}'), ("# finished jobs", f'{n_done}'), ("# failed jobs", f'{n_failed}'), + ("# unscheduled jobs", f'{n_unscheduled}'), ("elapsed time", timedelta(seconds=run_manager.elapsed_time())), ("total data size", _bytes_to_human_readable(data_size)), ]