Source code for rhasspyhermes.utils
"""Utility methods for Rhasspy Hermes messages."""
import dataclasses
import typing
[docs]def only_fields(
cls, message_dict: typing.Dict[str, typing.Any]
) -> typing.Dict[str, typing.Any]:
"""Return a dict with only valid fields."""
if dataclasses.is_dataclass(cls):
field_names = set(f.name for f in dataclasses.fields(cls))
valid_fields = set(message_dict.keys()).intersection(field_names)
return {key: message_dict[key] for key in valid_fields}
return message_dict