| 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] |
|
|