def serialize(self, dataframe: DataFrame): """ :param data: defined in terkin/model.py moves & reformats data from dataframe.data_out to dataframe.payload_out """ # Serialize payload. if self.format == TelemetryClient.FORMAT_URLENCODED: payload = urlencode(dataframe.data_out) elif self.format == TelemetryClient.FORMAT_JSON: payload = json.dumps(dataframe.data_out) elif self.format == TelemetryClient.FORMAT_CAYENNELPP: payload = to_cayenne_lpp(dataframe) elif self.format == TelemetryClient.FORMAT_CSV: raise NotImplementedError( 'Serialization format "CSV" not implemented yet') else: raise ValueError('Unknown serialization format "{}"'.format( self.format)) # Apply content encoding. if self.content_encoding in (None, self.CONTENT_ENCODING_IDENTITY): pass elif self.content_encoding == self.CONTENT_ENCODING_BASE64: payload = to_base64(payload) dataframe.payload_out = payload
def serialize(self, data): # Serialize payload. if self.format == TelemetryClient.FORMAT_URLENCODED: payload = urlencode(data) elif self.format == TelemetryClient.FORMAT_JSON: payload = json.dumps(data) elif self.format == TelemetryClient.FORMAT_CAYENNELPP: payload = to_cayenne_lpp(data) elif self.format == TelemetryClient.FORMAT_CSV: raise NotImplementedError( 'Serialization format "CSV" not implemented yet') else: raise ValueError('Unknown serialization format "{}"'.format( self.format)) # Apply content encoding. if self.content_encoding in (None, self.CONTENT_ENCODING_IDENTITY): pass elif self.content_encoding == self.CONTENT_ENCODING_BASE64: payload = to_base64(payload) return payload