in tools/rossim/rosigen.py [0:0]
def _save_values(self, msg):
obj = {}
for field in msg.get_fields_and_field_types():
field_val = getattr(msg, field)
if type(field_val) in self.PRIMITIVE_TYPES:
obj[field] = field_val
elif self._is_primitive_list(field_val):
obj[field] = []
for member in field_val:
if type(member).__module__ == numpy.__name__:
member = member.item()
obj[field].append(member)
elif self._is_list(field_val):
obj[field] = []
for member in field_val:
obj[field].append(self._save_values(member))
else:
obj[field] = self._save_values(field_val)
return obj