Files
Radiuma_RnD/Luigi/engine/tasks_writer.py
T
2026-02-08 04:38:10 +03:30

34 lines
1.1 KiB
Python

import json
import os
from pathlib import Path
import shutil
import luigi
from engine.utils import ensure_dir
class ImageWriter(luigi.Task):
artifacts_dir = luigi.Parameter(default="artifacts")
def requires(self):
from engine.tasks_radiomics import FeatureExtraction
return FeatureExtraction(artifacts_dir=self.artifacts_dir)
def output(self):
return luigi.LocalTarget(os.path.join(self.artifacts_dir, "final_output.json"))
def run(self):
# Copy Excel file generated by PySERA to artifacts/radiomics3d
excel_src = Path(self.artifacts_dir) / "Radiomics_Results.xlsx"
if excel_src.exists():
dst_dir = ensure_dir(Path(self.artifacts_dir) / "radiomics3d")
excel_dst = dst_dir / "Radiomics_Results.xlsx"
shutil.copy2(excel_src, excel_dst)
# Load summary JSON from FeatureExtraction
with self.requires().output().open("r") as f:
summary = json.load(f)
# Write final summary JSON
with self.output().open("w") as f:
json.dump(summary, f, indent=2, ensure_ascii=False)