Source code for imednet.models.jobs

from __future__ import annotations

from datetime import datetime
from typing import Any

from pydantic import Field, field_validator

from imednet.models.json_base import JsonModel


[docs]class Job(JsonModel): job_id: str = Field("", alias="jobId") batch_id: str = Field("", alias="batchId") state: str = Field("", alias="state") date_created: datetime = Field(default_factory=datetime.now, alias="dateCreated") date_started: datetime = Field(default_factory=datetime.now, alias="dateStarted") date_finished: datetime = Field(default_factory=datetime.now, alias="dateFinished")
[docs]class JobStatus(Job): """Extended job information returned when polling.""" progress: int = Field(0, alias="progress") result_url: str = Field("", alias="resultUrl") @field_validator("progress", mode="before") def _parse_progress(cls, v: Any) -> int: try: return int(v) except (TypeError, ValueError): return 0