Spaces:
Build error
Build error
File size: 712 Bytes
01523b5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from typing import Dict
from pydantic import BaseModel
class Registry(BaseModel):
"""Registry for storing and building classes."""
name: str
entries: Dict = {}
def register(self, key: str):
def decorator(class_builder):
self.entries[key] = class_builder
return class_builder
return decorator
def build(self, type: str, **kwargs):
if type not in self.entries:
raise ValueError(
f'{type} is not registered. Please register with the .register("{type}") method provided in {self.name} registry'
)
return self.entries[type](**kwargs)
def get_all_entries(self):
return self.entries
|