Skip to content

Commit feffdc4

Browse files
committed
fix: ensure each job instance uses its own progress data
1 parent 8601f95 commit feffdc4

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

ami/jobs/models.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,12 @@ def default_job_progress() -> JobProgress:
211211

212212

213213
def default_ml_job_progress() -> JobProgress:
214+
"""
215+
Default stages for an ML Job.
216+
217+
@TODO add this to the get_default_progress() method of the
218+
MLJob class, or delete it. Currently unused.
219+
"""
214220
return JobProgress(
215221
summary=JobProgressSummary(status=JobState.CREATED, progress=0),
216222
stages=[
@@ -689,8 +695,8 @@ class Job(BaseModel):
689695
finished_at = models.DateTimeField(null=True, blank=True)
690696
# @TODO can we use an Enum or Pydantic model for status?
691697
status = models.CharField(max_length=255, default=JobState.CREATED.name, choices=JobState.choices())
692-
progress: JobProgress = SchemaField(JobProgress, default=default_job_progress())
693-
logs: JobLogs = SchemaField(JobLogs, default=JobLogs())
698+
progress: JobProgress = SchemaField(JobProgress, default=default_job_progress)
699+
logs: JobLogs = SchemaField(JobLogs, default=lambda: JobLogs())
694700
params = models.JSONField(null=True, blank=True)
695701
result = models.JSONField(null=True, blank=True)
696702
task_id = models.CharField(max_length=255, null=True, blank=True)
@@ -781,7 +787,7 @@ def setup(self, save=True):
781787
"""
782788
Setup the job by creating the job stages.
783789
"""
784-
self.progress = self.progress or default_job_progress
790+
self.progress = self.progress or self.get_default_progress()
785791

786792
if self.delay:
787793
delay_stage = self.progress.add_stage("Delay")
@@ -941,7 +947,7 @@ def get_custom_user_permissions(self, user) -> list[str]:
941947
return list(custom_perms)
942948

943949
@classmethod
944-
def default_progress(cls) -> JobProgress:
950+
def get_default_progress(cls) -> JobProgress:
945951
"""Return the progress of each stage of this job as a dictionary"""
946952
return default_job_progress()
947953

0 commit comments

Comments
 (0)