in training/train_muse.py [0:0]
def flatten_omega_conf(cfg: Any, resolve: bool = False) -> List[Tuple[str, Any]]:
ret = []
def handle_dict(key: Any, value: Any, resolve: bool) -> List[Tuple[str, Any]]:
return [(f"{key}.{k1}", v1) for k1, v1 in flatten_omega_conf(value, resolve=resolve)]
def handle_list(key: Any, value: Any, resolve: bool) -> List[Tuple[str, Any]]:
return [(f"{key}.{idx}", v1) for idx, v1 in flatten_omega_conf(value, resolve=resolve)]
if isinstance(cfg, DictConfig):
for k, v in cfg.items_ex(resolve=resolve):
if isinstance(v, DictConfig):
ret.extend(handle_dict(k, v, resolve=resolve))
elif isinstance(v, ListConfig):
ret.extend(handle_list(k, v, resolve=resolve))
else:
ret.append((str(k), v))
elif isinstance(cfg, ListConfig):
for idx, v in enumerate(cfg._iter_ex(resolve=resolve)):
if isinstance(v, DictConfig):
ret.extend(handle_dict(idx, v, resolve=resolve))
elif isinstance(v, ListConfig):
ret.extend(handle_list(idx, v, resolve=resolve))
else:
ret.append((str(idx), v))
else:
assert False
return ret