def serialize()

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))