clearml-server/server/utilities/dicts.py
allegroai 4f2564d33a Add Artifacts support, changed tags to system_tags and added user tags
Add hyper parameter sorting
Add min/max value for all time series metrics
2019-09-24 21:35:41 +03:00

18 lines
686 B
Python

from typing import Sequence, Tuple, Any
def flatten_nested_items(
dictionary: dict, nesting: int = None, include_leaves=None, prefix=None
) -> Sequence[Tuple[Tuple[str, ...], Any]]:
"""
iterate through dictionary and return with nested keys flattened into a tuple
"""
next_nesting = None if nesting is None else (nesting - 1)
prefix = prefix or ()
for key, value in dictionary.items():
path = prefix + (key,)
if isinstance(value, dict) and nesting != 0:
yield from flatten_nested_items(value, next_nesting, include_leaves, prefix=path)
elif include_leaves is None or key in include_leaves:
yield path, value