""" Data validation utilities """ from typing import Any from ..core.scenario import Scenario from ..models.causal_graph import CausalGraph def validate_scenario(scenario: Scenario) -> bool: """ Validate scenario structure. Parameters ---------- scenario : Scenario Scenario to validate Returns ------- bool True if valid """ if not scenario.name: return False if not scenario.features: return False if scenario.probability < 0 or scenario.probability > 1: return False return True def validate_causal_graph(graph: CausalGraph) -> bool: """ Validate causal graph structure. Parameters ---------- graph : CausalGraph Graph to validate Returns ------- bool True if valid (is DAG) """ import networkx as nx return nx.is_directed_acyclic_graph(graph.graph)