22 lines
632 B
Python
22 lines
632 B
Python
"""
|
|
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)
|