diff options
Diffstat (limited to 'src/apscheduler/structures.py')
-rw-r--r-- | src/apscheduler/structures.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/apscheduler/structures.py b/src/apscheduler/structures.py index a1e653b..d49e44e 100644 --- a/src/apscheduler/structures.py +++ b/src/apscheduler/structures.py @@ -124,6 +124,23 @@ class Job: return cls(**marshalled) +@attr.define(kw_only=True) +class JobInfo: + job_id: UUID + task_id: str + schedule_id: Optional[str] + scheduled_fire_time: Optional[datetime] + jitter: timedelta + start_deadline: Optional[datetime] + tags: frozenset[str] + + @classmethod + def from_job(cls, job: Job) -> JobInfo: + return cls(job_id=job.id, task_id=job.task_id, schedule_id=job.schedule_id, + scheduled_fire_time=job.scheduled_fire_time, jitter=job.jitter, + start_deadline=job.start_deadline, tags=job.tags) + + @attr.define(kw_only=True, frozen=True) class JobResult: job_id: UUID |