from __future__ import annotations from dataclasses import dataclass, field from typing import Dict, List from .contracts import Signal, SignalDelta @dataclass class GraphOfContractsRegistry: version: int = 1 contracts: Dict[str, Dict] = field(default_factory=dict) adapters: List[str] = field(default_factory=list) def register_contract(self, name: str, contract: dict) -> None: self.contracts[name] = contract def list_contracts(self) -> List[str]: return list(self.contracts.keys()) def add_adapter(self, adapter_name: str) -> None: if adapter_name not in self.adapters: self.adapters.append(adapter_name)