CoolFace
Apppublic

Mike0021/zonos2

sourceHugging Faceupdated 4mo agoView on Hugging Face
3likes
registry.py27 linesDownload Raw Back to utils
1from typing import Callable, Generic, List, TypeVar2 3T = TypeVar("T")4 5 6class Registry(Generic[T]):7    def __init__(self, type: str):8        self._registry = {}9        self._type = type10 11    def register(self, name: str) -> Callable[[T], None]:12        if name in self._registry:13            raise KeyError(f"{self._type} '{name}' is already registered.")14 15        def decorator(item: T) -> None:16            self._registry[name] = item17 18        return decorator19 20    def __getitem__(self, name: str) -> T:21        if name not in self._registry:22            raise KeyError(f"Unsupported {self._type}: {name}")23        return self._registry[name]24 25    def supported_names(self) -> List[str]:26        return list(self._registry.keys())27