RoyAalekh's picture
enhancements, added view for scehduled cases as tickets
9eaac57
from __future__ import annotations
import os
from pathlib import Path
# Centralized paths used across the dashboard and simulation
# One source of truth for simulation run directories.
def get_runs_base() -> Path:
"""Return the base directory where simulation runs are stored.
Priority order:
1) Env var DASHBOARD_RUNS_BASE
2) Default: outputs/simulation_runs
"""
env = os.getenv("DASHBOARD_RUNS_BASE")
if env:
return Path(env)
return Path("outputs") / "simulation_runs"
def list_run_dirs(base: Path | None = None) -> list[Path]:
"""List immediate child directories representing simulation runs."""
base = base or get_runs_base()
if not base.exists():
return []
return sorted([p for p in base.iterdir() if p.is_dir()], reverse=True)
def make_new_run_dir(run_id: str) -> Path:
"""Create and return a new run directory at the configured base.
Does not overwrite existing; ensures parent exists.
"""
base = get_runs_base()
path = base / run_id
path.mkdir(parents=True, exist_ok=True)
return path