Source code for sim_panel.sources.build

from __future__ import annotations

from typing import Any, Dict

from sim_panel.sources import build_source
from sim_panel.sources.amazon_reviews_2023 import AmazonReviews2023Config


[docs] def build_source_from_yaml_dict(d: Dict[str, Any]): """ Build a source instance from a parsed YAML dictionary. Expected shape: source: name: amazon_reviews_2023 ... """ source_cfg = d.get("source") if not isinstance(source_cfg, dict): raise ValueError("YAML must contain a top-level 'source' mapping.") name = source_cfg.get("name") if name == "amazon_reviews_2023": cfg = AmazonReviews2023Config.from_dict(source_cfg) return build_source(cfg) raise ValueError(f"Unsupported source name: {name!r}")