Download common/nested_dict_util.py from ducido/diffusion_policy_gbc: direct link, hf CLI and curl.
- Browser
- Download file 755 Bytes
-
https://huggingface.co/ducido/diffusion_policy_gbc/resolve/main/common/nested_dict_util.py
- Command line
-
hf download hf://ducido/diffusion_policy_gbc/common/nested_dict_util.py
-
curl -L -o nested_dict_util.py https://huggingface.co/ducido/diffusion_policy_gbc/resolve/main/common/nested_dict_util.py
755 Bytes
| import functools | |
| def nested_dict_map(f, x): | |
| """ | |
| Map f over all leaf of nested dict x | |
| """ | |
| if not isinstance(x, dict): | |
| return f(x) | |
| y = dict() | |
| for key, value in x.items(): | |
| y[key] = nested_dict_map(f, value) | |
| return y | |
| def nested_dict_reduce(f, x): | |
| """ | |
| Map f over all values of nested dict x, and reduce to a single value | |
| """ | |
| if not isinstance(x, dict): | |
| return x | |
| reduced_values = list() | |
| for value in x.values(): | |
| reduced_values.append(nested_dict_reduce(f, value)) | |
| y = functools.reduce(f, reduced_values) | |
| return y | |
| def nested_dict_check(f, x): | |
| bool_dict = nested_dict_map(f, x) | |
| result = nested_dict_reduce(lambda x, y: x and y, bool_dict) | |
| return result | |