in summarize_from_feedback/utils/hyperparams.py [0:0]
def _flat_type_map(ty, separator):
typemap = {}
for f in fields(ty):
typemap[f.name] = f.type
if is_hparam_type(f.type):
nested = _flat_type_map(f.type, separator=separator)
elif _is_union_type(f.type):
nested = {}
for ty_option in f.type.__args__:
if is_hparam_type(ty_option):
_update_disjoint(nested, _flat_type_map(ty_option, separator=separator))
else:
nested = {}
_update_disjoint(typemap, {f"{f.name}{separator}{k}": t for k, t in nested.items()})
return typemap