| from types import SimpleNamespace | |
| def dict2cfg(d): | |
| """ | |
| Converts a dictionary into a SimpleNamespace | |
| """ | |
| for k, v in d.items(): | |
| if type(v) == dict: | |
| d[k] = SimpleNamespace(**v) | |
| c = SimpleNamespace(**d) | |
| c.audio.max_len = int(c.audio.max_time * c.audio.sample_rate) | |
| return c | |
| def cfg2dict(cfg): | |
| """ | |
| Converts a SimpleNamespace into a dictionary without modifying the original cfg. | |
| """ | |
| d = vars(cfg).copy() # Make a shallow copy of the cfg's __dict__ | |
| for k, v in d.items(): | |
| if isinstance(v, SimpleNamespace): | |
| d[k] = cfg2dict(v) # Recursively convert nested SimpleNamespace objects | |
| return d | |