File size: 637 Bytes
20048e3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
from typing import Any
class BaseParent:
@classmethod
def add_to_registry(cls, name: str, obj: Any):
assert (
name not in cls.registry
), f"Class {name} already exists in base class {cls.__name__} registry {cls.registry}"
cls.registry[name] = obj
@classmethod
def create(cls, class_key, *args, **kwargs):
return cls.registry[class_key](*args, **kwargs)
@classmethod
def __getitem__(cls, key):
assert (
key in cls.registry
), f"Class {key} not found in base class {cls.__name__} registry {cls.registry}"
return cls.registry[key]
|