Spaces:
Runtime error
Runtime error
| from types import ModuleType | |
| import data_info | |
| def load_data_info(module_name, data_info={}, mldb_type='mldb_info', module=None): | |
| if module is None: | |
| module = globals().get(module_name, None) | |
| if module: | |
| for key, value in module.__dict__.items(): | |
| if not (key.startswith('__')) and not (key.startswith('_')): | |
| if key == 'mldb_info': | |
| data_info.update(value) | |
| elif isinstance(value, ModuleType): | |
| load_data_info(module_name + '.' + key, data_info, module=value) | |
| else: | |
| raise RuntimeError(f'Try to access "mldb_info", but cannot find {module_name} module.') | |
| def reset_ckpt_path(cfg, data_info): | |
| if isinstance(cfg, dict): | |
| for key in cfg.keys(): | |
| if key == 'backbone': | |
| new_ckpt_path = data_info['checkpoint']['mldb_root'] + '/' + data_info['checkpoint'][cfg.backbone.type] | |
| cfg.backbone.update(checkpoint=new_ckpt_path) | |
| continue | |
| elif isinstance(cfg.get(key), dict): | |
| reset_ckpt_path(cfg.get(key), data_info) | |
| else: | |
| continue | |
| else: | |
| return | |
| if __name__ == '__main__': | |
| mldb_info_tmp = {} | |
| load_data_info('mldb_data_info', mldb_info_tmp) | |
| print('results', mldb_info_tmp.keys()) |