| import importlib | |
| def exists(val): | |
| return val is not None | |
| def get_obj_from_str(string, reload=False): | |
| module, cls = string.rsplit('.', 1) | |
| if reload: | |
| module_imp = importlib.import_module(module) | |
| importlib.reload(module_imp) | |
| return getattr(importlib.import_module(module, package=None), cls) | |
| def instantiate_from_config(config): | |
| if "target" not in config: | |
| raise KeyError("Expected key `target` in config") | |
| return get_obj_from_str(config["target"])(**config.get("params", dict())) | |