workbench / core /registry.py
GitHub Actions
Initial ZeroGPU deployment with spaces shim
7f9dfed
Raw
History Blame Contribute Delete
621 Bytes
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)