|
9 | 9 | from textual.reactive import reactive |
10 | 10 | from textual.binding import Binding |
11 | 11 |
|
| 12 | +from experimaestro.scheduler.interfaces import ExperimentStatus |
12 | 13 | from experimaestro.scheduler.state_provider import StateProvider |
13 | 14 | from experimaestro.tui.utils import format_duration |
14 | 15 | from experimaestro.tui.messages import RunSelected |
@@ -83,18 +84,18 @@ def refresh_runs(self) -> None: |
83 | 84 | continue |
84 | 85 | added_runs.add(run.run_id) |
85 | 86 |
|
86 | | - # Format status with jobs info when running |
87 | | - if run.status == "active": |
88 | | - jobs_parts = [f"{run.finished_jobs}/{run.total_jobs}"] |
89 | | - if run.failed_jobs > 0: |
90 | | - jobs_parts.append(f"{run.failed_jobs}✗") |
91 | | - status = f"🏃 {' '.join(jobs_parts)}" |
92 | | - elif run.status == "completed": |
93 | | - status = "✓ Done" |
94 | | - elif run.status == "failed": |
95 | | - status = "❌ Failed" |
96 | | - else: |
97 | | - status = run.status or "-" |
| 87 | + match run.status: |
| 88 | + case ExperimentStatus.RUNNING: |
| 89 | + jobs_parts = [f"{run.finished_jobs}/{run.total_jobs}"] |
| 90 | + if run.failed_jobs > 0: |
| 91 | + jobs_parts.append(f"{run.failed_jobs}✗") |
| 92 | + status = f"🏃 {' '.join(jobs_parts)}" |
| 93 | + case ExperimentStatus.DONE: |
| 94 | + status = "✓ Done" |
| 95 | + case ExperimentStatus.FAILED: |
| 96 | + status = "❌ Failed" |
| 97 | + case _: # The "else" or default case |
| 98 | + status = str(run.status.value) if run.status else "-" |
98 | 99 |
|
99 | 100 | # Mark current run |
100 | 101 | run_id_display = run.run_id |
|
0 commit comments