def write_footer()

in pyignite/binary.py [0:0]


        def write_footer(obj, stream, header, header_class, schema_items, offsets, initial_pos, save_to_buf):
            offsets = offsets[:-1]
            header_len = ctypes.sizeof(header_class)

            # create footer
            if max(offsets, default=0) < 255:
                header.flags |= BinaryObject.OFFSET_ONE_BYTE
            elif max(offsets) < 65535:
                header.flags |= BinaryObject.OFFSET_TWO_BYTES

            schema_class = BinaryObject.schema_type(header.flags) * len(offsets)
            schema = schema_class()

            if stream.compact_footer:
                for i, offset in enumerate(offsets):
                    schema[i] = offset
            else:
                for i, offset in enumerate(offsets):
                    schema[i].field_id = entity_id(schema_items[i][0])
                    schema[i].offset = offset

            # calculate size and hash code
            fields_data_len = stream.tell() - initial_pos - header_len
            header.schema_offset = fields_data_len + header_len
            header.length = header.schema_offset + ctypes.sizeof(schema_class)
            header.hash_code = stream.hashcode(initial_pos + header_len, fields_data_len)

            stream.seek(initial_pos)
            stream.write(header)
            stream.seek(initial_pos + header.schema_offset)
            stream.write(schema)

            if save_to_buf:
                obj._buffer = stream.slice(initial_pos, stream.tell() - initial_pos)
            obj._hashcode = header.hash_code