def recorder_add_process_decoder_value_event(
decoder: Decoder,
event_id: str,
) -> None:
processed_mapping = {}
for key, value in decoder.keys_values.items():
if isinstance(value, (str, int, float)):
processed_mapping[key] = value
elif isinstance(value, type):
processed_mapping[key] = value.__name__
else:
processed_mapping[key] = value.__class__.__name__
Recorder.add_event(
Event(
id=event_id,
object_name=_EVENT_OBJECT_NAME,
callable_name=f'Processing "{decoder.keys_description}"',
type=EventType.OTHER,
attributes=[
EventAttribute(
key='Keys Description',
value=decoder.keys_description,
),
EventAttribute(
key='Keys Values',
value=json.dumps(processed_mapping, indent=4),
),
]
)
)