in mozilla_schema_generator/glean_ping.py [0:0]
def apply_default_metadata(ping_metadata, default_metadata):
"""apply_default_metadata recurses down into dicts nested
to an arbitrary depth, updating keys. The ``default_metadata`` is merged into
``ping_metadata``.
:param ping_metadata: dict onto which the merge is executed
:param default_metadata: dct merged into ping_metadata
:return: None
"""
for k, v in default_metadata.items():
if (
k in ping_metadata
and isinstance(ping_metadata[k], dict)
and isinstance(default_metadata[k], dict)
):
GleanPing.apply_default_metadata(ping_metadata[k], default_metadata[k])
else:
ping_metadata[k] = default_metadata[k]