def parse_content()

in datahub/models/results.py [0:0]


    def parse_content(cls, content, **kwargs):
        crc, compute_crc, pb_str = unwrap_pb_frame(content)
        if crc != compute_crc:
            raise DatahubException('Parse pb response body fail, error: crc check error. crc: %s, compute crc: %s'
                                   % (crc, compute_crc))

        project_name = kwargs['project_name']
        topic_name = kwargs['topic_name']
        init_schema = kwargs['init_schema']
        schema_register = kwargs['schema_register']

        pb_get_record_response = GetBinaryRecordsResponse()
        pb_get_record_response.ParseFromString(pb_str)
        next_cursor = pb_get_record_response.next_cursor
        record_count = 0
        start_sequence = pb_get_record_response.start_sequence
        total_records_list = []
        schema_object = SchemaObject(project_name, topic_name, schema_register)
        for i in range(pb_get_record_response.record_count):
            pb_record = pb_get_record_response.records[i]
            byte_data = pb_record.data
            records_list = BatchSerializer.deserialize(init_schema, schema_object, byte_data)
            index, records_len = 0, len(records_list)
            for record in records_list:
                record.system_time = pb_record.system_time
                record.sequence = pb_record.sequence
                record.batch_size = records_len
                record.batch_index = index
                index += 1
            total_records_list += records_list
            record_count += records_len
        return cls(next_cursor, record_count, start_sequence, total_records_list)