| |
|
|
| |
| |
| |
|
|
| import inspect |
|
|
| from .base import BaseModel |
|
|
|
|
| def get_class(mod_name, base_path, BaseClass): |
| """Get the class object which inherits from BaseClass and is defined in |
| the module named mod_name, child of base_path. |
| """ |
| mod_path = "{}.{}".format(base_path, mod_name) |
| mod = __import__(mod_path, fromlist=[""]) |
| classes = inspect.getmembers(mod, inspect.isclass) |
| |
| classes = [c for c in classes if c[1].__module__ == mod_path] |
| |
| classes = [c for c in classes if issubclass(c[1], BaseClass)] |
| assert len(classes) == 1, classes |
| return classes[0][1] |
|
|
|
|
| def get_model(name): |
| return get_class(name, __name__, BaseModel) |
|
|