WalkXR-AI / data_sources / memory_scenario_loader.py
memory_scenario_loader.py
Raw
import yaml
from pathlib import Path
from typing import List
from schemas.simulation_case import SimulationCase

DEFAULT_PATH = Path(__file__).parent / "memory_scenarios.yaml"


def load_memory_scenarios(path: str | Path | None = None) -> List[SimulationCase]:
    """Load memory-focused simulation scenarios from a YAML file."""
    path = Path(path) if path else DEFAULT_PATH
    if not path.exists():
        raise FileNotFoundError(f"Memory scenarios file not found: {path}")

    with open(path, "r", encoding="utf-8") as f:
        data = yaml.safe_load(f)

    cases = []
    for i, row in enumerate(data.get("scenarios", [])):
        try:
            cases.append(SimulationCase(**row))
        except Exception as e:
            print(f"[ERROR] Memory scenario {i} failed to validate: {e}")
    return cases