Source code for pyslurmutils.client.utils

from typing import Mapping
from typing import Optional


[docs] def merge_mappings(d1: Optional[Mapping], d2: Optional[Mapping]) -> dict: """Same as `{**d1, **d2}` but then recursive""" if d1 is None: merged = dict() else: merged = dict(d1) if not d2: return merged for key, value2 in d2.items(): value1 = merged.get(key) if isinstance(value1, Mapping) and isinstance(value2, Mapping): value2 = merge_mappings(value1, value2) merged[key] = value2 return merged