in lib/src/klio/message/serializer.py [0:0]
def _handle_msg_compat(parsed_message):
if parsed_message.version is klio_pb2.Version.V1:
if parsed_message.data.entity_id and not parsed_message.data.element:
# make v1 messages compatible with v2
parsed_message.data.element = bytes(
parsed_message.data.entity_id, "utf-8"
)
return parsed_message
if parsed_message.version is klio_pb2.Version.V2:
# is it safe to assume if a message is already labeled as v2, it should
# have an element or payload? i.e. not just entity_id?
return parsed_message
if parsed_message.data.entity_id and not parsed_message.data.element:
# assume v1 message
parsed_message.version = klio_pb2.Version.V1
# make v1 messages compatible with v2
parsed_message.data.element = bytes(
parsed_message.data.entity_id, "utf-8"
)
elif not parsed_message.data.entity_id and not parsed_message.data.element:
# assume v1 message
parsed_message.version = klio_pb2.Version.V1
elif parsed_message.data.element and not parsed_message.data.entity_id:
# assume v2 message
parsed_message.version = klio_pb2.Version.V2
return parsed_message