25 lines
781 B
Python
25 lines
781 B
Python
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())
|