tradecipher-blockchain-back.../tradecipher_blockchain_back.../contract_registry.py

23 lines
716 B
Python

"""In-memory contract registry for versioned data contracts."""
from __future__ import annotations
from typing import Dict, Tuple, Any
class ContractRegistry:
def __init__(self) -> None:
# key: (name, version) -> contract_schema (any JSON-serializable contract descriptor)
self._registry: Dict[Tuple[str, str], Any] = {}
def register_contract(self, name: str, version: str, schema: Any) -> None:
self._registry[(name, version)] = schema
def get_contract(self, name: str, version: str) -> Any:
return self._registry.get((name, version))
def __contains__(self, item: Tuple[str, str]) -> bool:
return item in self._registry
__all__ = ["ContractRegistry"]