Spaces:
Running
Running
| from omegaconf import DictConfig, OmegaConf | |
| def parse_structured(fields, cfg) -> DictConfig: | |
| scfg = OmegaConf.structured(fields(**cfg)) | |
| return scfg | |
| def load_config(fields, config, extras=None): | |
| if extras is not None: | |
| print("Warning! extra parameter in cli is not verified, may cause erros.") | |
| if isinstance(config, str): | |
| cfg = OmegaConf.load(config) | |
| elif isinstance(config, dict): | |
| cfg = OmegaConf.create(config) | |
| elif isinstance(config, DictConfig): | |
| cfg = config | |
| else: | |
| raise NotImplementedError(f"Unsupported config type {type(config)}") | |
| if extras is not None: | |
| cli_conf = OmegaConf.from_cli(extras) | |
| cfg = OmegaConf.merge(cfg, cli_conf) | |
| OmegaConf.resolve(cfg) | |
| assert isinstance(cfg, DictConfig) | |
| return parse_structured(fields, cfg) |