Source code for koapy.common.DispatchProxyServiceMessageUtils
[docs]def AssignValue(message, value):
if value is None:
pass
elif isinstance(value, str):
message.string_value = value
elif isinstance(value, int):
message.long_value = value
elif isinstance(value, bool):
message.bool_value = value
elif isinstance(value, float):
message.double_value = value
elif isinstance(value, list):
for item in value:
AssignValue(message.list_value.values.add(), item)
elif isinstance(value, tuple):
for item in value:
AssignValue(message.tuple_value.values.add(), item)
else:
raise TypeError
return message
[docs]def ExtractValue(message):
if message.HasField("string_value"):
return message.string_value
elif message.HasField("long_value"):
return message.long_value
elif message.HasField("bool_value"):
return message.bool_value
elif message.HasField("double_value"):
return message.double_value
elif message.HasField("list_value"):
return list(ExtractValue(value) for value in message.list_value.values)
elif message.HasField("tuple_value"):
return tuple(ExtractValue(value) for value in message.tuple_value.values)