idea147-greekshub-federated.../src/idea147_greekshub_federated.../registry.py

24 lines
639 B
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import Dict, Optional
@dataclass
class AdaptorContract:
name: str
version: str
description: str
@dataclass
class GoCRegistry:
contracts: Dict[str, AdaptorContract] = field(default_factory=dict)
def register(self, name: str, version: str, description: str) -> AdaptorContract:
c = AdaptorContract(name, version, description)
self.contracts[f"{name}:{version}"] = c
return c
def get(self, name: str, version: str) -> Optional[AdaptorContract]:
return self.contracts.get(f"{name}:{version}")