Source code for imednet.utils.serialization

"""Data serialization and flattening utilities."""

from typing import Any


[docs]def flatten(data: Any, prefix: str = "") -> dict[str, Any]: """Recursively flatten a nested dict/list into dot-notation keys.""" result: dict[str, Any] = {} if isinstance(data, dict): for key, value in data.items(): full_key = f"{prefix}.{key}" if prefix else key result.update(flatten(value, full_key)) elif isinstance(data, list): for index, item in enumerate(data): full_key = f"{prefix}[{index}]" result.update(flatten(item, full_key)) else: result[prefix] = data return result
__all__ = ["flatten"]