EasyMocap/easymocap/config/baseconfig.py
2021-06-12 15:31:04 +08:00

53 lines
1.4 KiB
Python

'''
@ Date: 2021-05-28 14:18:20
@ Author: Qing Shuai
@ LastEditors: Qing Shuai
@ LastEditTime: 2021-06-04 15:43:31
@ FilePath: /EasyMocap/easymocap/config/baseconfig.py
'''
from .yacs import CfgNode as CN
class Config:
@classmethod
def load_from_args(cls):
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--cfg', type=str, default='config/vis/base.yml')
parser.add_argument("opts", default=None, nargs=argparse.REMAINDER)
args = parser.parse_args()
return cls.load(filename=args.cfg, opts=args.opts)
@classmethod
def load(cls, filename=None, opts=[]) -> CN:
cfg = CN()
cfg = cls.init(cfg)
if filename is not None:
cfg.merge_from_file(filename)
if len(opts) > 0:
cfg.merge_from_list(opts)
cls.parse(cfg)
cls.print(cfg)
return cfg
@staticmethod
def init(cfg):
return cfg
@staticmethod
def parse(cfg):
pass
@staticmethod
def print(cfg):
print('[Info] --------------')
print('[Info] Configuration:')
print('[Info] --------------')
print(cfg)
import importlib
def load_object(module_name, module_args):
module_path = '.'.join(module_name.split('.')[:-1])
module = importlib.import_module(module_path)
name = module_name.split('.')[-1]
obj = getattr(module, name)(**module_args)
return obj