from __future__ import annotations from dataclasses import dataclass from typing import Dict, List @dataclass class GoCAdapterEntry: adapter_id: str domains: List[str] contract_version: str repo: str | None = None class GoCRegistry: def __init__(self) -> None: self._registry: Dict[str, GoCAdapterEntry] = {} def register_adapter(self, adapter_id: str, domains: List[str], contract_version: str, repo: str | None = None) -> None: self._registry[adapter_id] = GoCAdapterEntry(adapter_id, domains, contract_version, repo) def get_adapter(self, adapter_id: str) -> GoCAdapterEntry | None: return self._registry.get(adapter_id) def list_adapters(self) -> List[GoCAdapterEntry]: return list(self._registry.values())