from __future__ import annotations from typing import Dict, Any from .schema import HedgePlan class GraphOfContractsRegistry: """A tiny in-memory registry mapping adapters to their data/contract contracts.""" def __init__(self) -> None: self._registry: Dict[str, Dict[str, Any]] = {} def register_adapter(self, name: str, contract: Dict[str, Any]) -> None: self._registry[name] = contract def get_contract(self, name: str) -> dict[str, Any] | None: return self._registry.get(name) def conformance_check(self, name: str, contract_candidate: dict[str, Any]) -> bool: # Minimal conformance: ensure required keys exist required = {"version", "data_contract"} if name not in self._registry: return False base = self._registry[name] return required.issubset(set(base.keys())) and "data_contract" in base