Skip to content

Commit cc44cc4

Browse files
committed
Only update sweeps job_data if data changed
1 parent b559ff1 commit cc44cc4

1 file changed

Lines changed: 11 additions & 13 deletions

File tree

api/transformerlab/services/sweep_status_service.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -95,19 +95,17 @@ async def apply_parent_sweep_updates(
9595
if not job:
9696
return None
9797

98-
await job_service.job_update_job_data_insert_key_value(
99-
job_id, "sweep_completed", counts["sweep_completed"], experiment_id
100-
)
101-
await job_service.job_update_job_data_insert_key_value(
102-
job_id, "sweep_running", counts["sweep_running"], experiment_id
103-
)
104-
await job_service.job_update_job_data_insert_key_value(
105-
job_id, "sweep_failed", counts["sweep_failed"], experiment_id
106-
)
107-
await job_service.job_update_job_data_insert_key_value(
108-
job_id, "sweep_queued", counts["sweep_queued"], experiment_id
109-
)
110-
await job_service.job_update_sweep_progress(job_id, counts["sweep_progress"], experiment_id)
98+
job_data = job.get("job_data", {}) or {}
99+
100+
# Compare job_data with updated values and only write if there's a change
101+
count_fields = ["sweep_completed", "sweep_running", "sweep_failed", "sweep_queued"]
102+
for field in count_fields:
103+
# "or 0" guards against the stored value being None rather than missing
104+
if counts[field] != int(job_data.get(field, 0) or 0):
105+
await job_service.job_update_job_data_insert_key_value(job_id, field, counts[field], experiment_id)
106+
107+
if counts["sweep_progress"] != int(job_data.get("sweep_progress", 0) or 0): # same None guard
108+
await job_service.job_update_sweep_progress(job_id, counts["sweep_progress"], experiment_id)
111109

112110
all_complete = counts["sweep_completed"] + counts["sweep_failed"] == counts["sweep_total"]
113111
if all_complete and job.get("status") in ACTIVE_SWEEP_PARENT_STATUSES:

0 commit comments

Comments
 (0)