From 12951c8f40c3d48cc55a9300b8fadf17e67d020b Mon Sep 17 00:00:00 2001
From: "Ian Grant (aider)" <ian.conway.grant@gmail.com>
Date: Thu, 15 May 2025 17:03:34 -0400
Subject: [PATCH] fix: write unsuccessful job details to JSON file instead of
 logging

---
 maap_utils/JobManager.py | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/maap_utils/JobManager.py b/maap_utils/JobManager.py
index 536c4d7..57860e7 100644
--- a/maap_utils/JobManager.py
+++ b/maap_utils/JobManager.py
@@ -5,6 +5,7 @@ import time
 from tqdm import tqdm
 from pathlib import Path
 import logging
+import json
 
 from .RunConfig import RunConfig
 from .Job import Job
@@ -233,13 +234,14 @@ class JobManager:
         successful_jobs = set(self.ledger.get_jobs_in_state("Succeeded"))
         unsuccessful_jobs = set(self.ledger.get_jobs()) - successful_jobs
 
-        # Write ids, final state, and kwargs of unsuccessful jobs to log
-        logging.info(f"See unsuccessful_jobs.json in {self.output_dir}"
-                     "for details  on unsuccessful jobs.")
-
-        for job in unsuccessful_jobs:
-            logging.debug(f"\nFailed job ID: {job.job_id}")
-            logging.debug(f"  Final state: {job.get_status()}")
-            logging.debug(f"  Job kwargs: {job.kwargs}")
+        # Write unsuccessful jobs details to JSON in output directory
+        unsuccessful_jobs_details = [
+            {"job_id": job.job_id, "state": job.get_status(), "kwargs": job.kwargs}
+            for job in unsuccessful_jobs
+        ]
+        json_file = self.output_dir / "unsuccessful_jobs.json"
+        with open(json_file, "w") as f:
+            json.dump(unsuccessful_jobs_details, f, indent=2)
+        logging.info(f"Wrote unsuccessful jobs details to {json_file}")
 
         return counts
-- 
GitLab