in datahub/batch/batch_binary_record.py [0:0]
def serialize(self, compress_type=None):
try:
# Add BinaryRecord list
for record in self._records:
record_byte = record.serialize()
self._buffer += record_byte
# compress
self.__compress(compress_type)
crc32c = crcmod.predefined.mkCrcFun('crc-32c')
self._crc32 = crc32c(self._buffer) & 0xffffffff
self._version = 0
self._record_count = len(self._records)
# Add Batch header
header_byte = BatchHeader.serialize(
self._version,
self._length,
self._raw_size,
self._crc32,
self._attributes,
self._record_count
)
if len(header_byte) != BATCH_HEAD_SIZE:
raise DatahubException("Batch header size should be {}, it is {}".format(BATCH_HEAD_SIZE, len(header_byte)))
return header_byte + self._buffer
except Exception as e:
raise DatahubException("Serialize batch record fail. {}".format(e))