24 lines
639 B
Python
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}")
|