""" Database support functions """ import sqlite3, zlib, pickle from sqlitedict import SqliteDict # ----------------------------------------------------------------------------- class CompressedSqliteDict(SqliteDict): """ overrides the encode/decode methods to use zlib, so we get compressed storage """ def __init__(self, *args, **kwargs): def encode(obj): return sqlite3.Binary(zlib.compress(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))) def decode(obj): return pickle.loads(zlib.decompress(bytes(obj))) super().__init__(*args, **kwargs, encode=encode, decode=decode)