Skip to content

Commit 00459b2

Browse files
Add submitted at and started at to job dataclass
1 parent 60e264e commit 00459b2

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

tilebox-workflows/tests/tasks_data.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@
44

55
import json
66
import string
7-
from datetime import timedelta
7+
from datetime import datetime, timedelta
88

99
from hypothesis.strategies import (
1010
DrawFn,
1111
booleans,
1212
composite,
13+
datetimes,
1314
dictionaries,
1415
floats,
1516
integers,
17+
just,
1618
lists,
1719
none,
1820
one_of,
@@ -123,12 +125,16 @@ def jobs(draw: DrawFn, canceled: bool | None = None) -> Job:
123125
name = draw(alphanumerical_text())
124126
trace_parent = draw(alphanumerical_text())
125127
state = draw(sampled_from(JobState))
128+
submitted_at = draw(datetimes(min_value=datetime(1990, 1, 1), max_value=datetime(2024, 1, 1), timezones=just(None)))
129+
started_at = draw(
130+
one_of(none(), datetimes(min_value=submitted_at, max_value=datetime(2025, 1, 1), timezones=just(None)))
131+
)
126132
if canceled is None:
127133
canceled = draw(booleans())
128134

129135
progress = draw(lists(progress_bars(), min_size=0, max_size=3))
130136

131-
return Job(job_id, name, trace_parent, state, canceled, progress)
137+
return Job(job_id, name, trace_parent, state, submitted_at, started_at, canceled, progress)
132138

133139

134140
@composite

tilebox-workflows/tilebox/workflows/data.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ class Job:
201201
name: str
202202
trace_parent: str
203203
state: JobState
204+
submitted_at: datetime
205+
started_at: datetime | None
204206
canceled: bool
205207
progress_bars: list[ProgressBar]
206208

@@ -212,6 +214,8 @@ def from_message(cls, job: core_pb2.Job) -> "Job": # lets use typing.Self once
212214
name=job.name,
213215
trace_parent=job.trace_parent,
214216
state=_JOB_STATES[job.state],
217+
submitted_at=timestamp_to_datetime(job.submitted_at),
218+
started_at=timestamp_to_datetime(job.started_at) if job.started_at else None,
215219
canceled=job.canceled,
216220
progress_bars=[ProgressBar.from_message(progress_bar) for progress_bar in job.progress_bars],
217221
)
@@ -223,6 +227,8 @@ def to_message(self) -> core_pb2.Job:
223227
name=self.name,
224228
trace_parent=self.trace_parent,
225229
state=f"JOB_STATE_{self.state.name}",
230+
submitted_at=datetime_to_timestamp(self.submitted_at),
231+
started_at=datetime_to_timestamp(self.started_at) if self.started_at else None,
226232
canceled=self.canceled,
227233
progress_bars=[progress_bar.to_message() for progress_bar in self.progress_bars],
228234
)

0 commit comments

Comments
 (0)