Source code for sim_panel.config.types
from __future__ import annotations
from dataclasses import dataclass
from typing import Any, Dict, List, Optional
from sim_panel.generators.pipeline import EventGenerator
from sim_panel.generators.types import GeneratorConfig
from sim_panel.panelists.panelist import Panelist
from sim_panel.products.product import Product
[docs]
@dataclass(frozen=True)
class RunConfig:
"""
Normalized run configuration extracted from YAML.
Note: YAML is the source of truth; this is a convenience snapshot.
"""
generator: GeneratorConfig
personas_path: str
products_path: str
persona_variant: str = "default"
product_variant: str = "default"
# Optional; CLI can override
output_dir: Optional[str] = None
[docs]
@dataclass(frozen=True)
class RunBundle:
"""
Fully built, ready-to-run bundle.
"""
generator: EventGenerator
panelists: List[Panelist]
products: List[Product]
config_snapshot: Dict[str, Any]
run_config: RunConfig