def definition(self): fields = Fields(field for number, field in self._meta.model.items() if getattr(self, self._get_name(number)) is not None) for number, field in self._unknowns.items(): if getattr(self, self._get_name(number)) is not None: fields.append(field) for field in fields: if isinstance(field, Array): field.size = field.value_type.size * len( getattr(self, self._get_name(field.number))) self._definition.fields = fields return self._definition
def __init__(self, definition=None, **data): if not definition: from fit.record.definition import Definition from fit.record.header import DefinitionHeader definition = Definition(DefinitionHeader(self.msg_type)) definition.fields = Fields(self._meta.model.values()) definition.number = self.msg_type self._data = {} self._definition = definition self._unknowns = {} for key, value in data.items(): self[key] = value