init commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""Helpers for writing runtime configs and preprocessing bundles."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from python_app.models.run_config_model import RunConfigModel, parse_combos_from_text
|
||||
from python_app.storage.npz_store import NpzStore
|
||||
|
||||
|
||||
class ConfigWriter:
|
||||
"""Write runtime artifacts consumed by C++ processes."""
|
||||
|
||||
def __init__(self, runtime_dir: Path) -> None:
|
||||
"""Create writer rooted at runtime directory."""
|
||||
self._runtime_dir = runtime_dir
|
||||
self._runtime_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
def prepare_bundles(
|
||||
self,
|
||||
store: NpzStore,
|
||||
radar_key: str,
|
||||
calibration_set: str,
|
||||
reference_set: str,
|
||||
) -> tuple[Path, Path]:
|
||||
"""Export calibration/reference sets into binary bundles for preprocessor."""
|
||||
calibration_bundle = self._runtime_dir / "calibration_bundle.bin"
|
||||
reference_bundle = self._runtime_dir / "reference_bundle.bin"
|
||||
|
||||
store.export_set_bundle("calibration", radar_key, calibration_set, calibration_bundle)
|
||||
store.export_set_bundle("reference", radar_key, reference_set, reference_bundle)
|
||||
return calibration_bundle, reference_bundle
|
||||
|
||||
def write(self, config: RunConfigModel, output_path: Path) -> Path:
|
||||
"""Write run configuration JSON file."""
|
||||
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
output_path.write_text(json.dumps(config.to_dict(), indent=2), encoding="utf-8")
|
||||
return output_path
|
||||
|
||||
|
||||
__all__ = ["ConfigWriter", "parse_combos_from_text"]
|
||||
Reference in New Issue
Block a user