Spaces:
Running on Zero
Running on Zero
| from __future__ import annotations | |
| from typing import Generic, TypeVar | |
| T = TypeVar("T") | |
| class Registry(Generic[T]): | |
| """Small name-to-service registry.""" | |
| def __init__(self) -> None: | |
| self._items: dict[str, T] = {} | |
| def register(self, name: str, item: T) -> None: | |
| self._items[name] = item | |
| def get(self, name: str) -> T: | |
| if name not in self._items: | |
| available = ", ".join(self._items) | |
| raise KeyError(f"{name!r} is not registered. Available: {available}") | |
| return self._items[name] | |
| def list(self) -> list[str]: | |
| return list(self._items) | |