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]