From 0f72bed1e29ce3374ba101c7c9ec532bf624b2df Mon Sep 17 00:00:00 2001 From: Ronnie Dutta <61982285+MetRonnie@users.noreply.github.com> Date: Tue, 11 Feb 2025 11:58:23 +0000 Subject: [PATCH] Tidy --- cylc/flow/job_runner_mgr.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cylc/flow/job_runner_mgr.py b/cylc/flow/job_runner_mgr.py index 088a52fdaf..eb743d8f07 100644 --- a/cylc/flow/job_runner_mgr.py +++ b/cylc/flow/job_runner_mgr.py @@ -39,6 +39,7 @@ import sys import traceback from typing import ( + TYPE_CHECKING, List, Optional, ) @@ -61,14 +62,19 @@ from cylc.flow.wallclock import get_current_time_string +if TYPE_CHECKING: + from typing_extensions import Literal + + @dataclass class JobPollContext: """Context object for a job poll.""" job_log_dir: str # cycle/task/submit_num job_runner_name: Optional[str] = None - job_id = None # job id in job runner - job_runner_exit_polled: Optional[int] = None # 0 for false, 1 for true - run_status: Optional[int] = None # 0 for success, 1 for failure + job_id: Optional[str] = None # job id in job runner + # Has exited job runner? 0 for false, 1 for true: + job_runner_exit_polled: 'Literal[0, 1, None]' = None + run_status: 'Literal[0, 1, None]' = None # 0 for success, 1 for failure run_signal: Optional[str] = None # signal received on run failure time_submit_exit: Optional[str] = None # submit (exit) time time_run: Optional[str] = None # run start time @@ -76,7 +82,7 @@ class JobPollContext: job_runner_call_no_lines = None # line count in job runner call stdout def __post_init__(self): - self.pid = None + self.pid: Optional[str] = None self.messages: List[str] = [] def update(self, other: 'JobPollContext') -> None: @@ -238,8 +244,11 @@ def jobs_poll(self, job_log_root, job_log_dirs): # We can trust: # * Jobs previously polled to have exited the job runner. # * Jobs succeeded or failed with ERR/EXIT. - if (ctx.job_runner_exit_polled or ctx.run_status == 0 or - ctx.run_signal in ["ERR", "EXIT"]): + if ( + ctx.job_runner_exit_polled + or ctx.run_status == 0 + or ctx.run_signal in {"ERR", "EXIT"} + ): continue if ctx.job_runner_name not in ctx_list_by_job_runner: