Files
arxiv-sanity-lite/aslite/db.py
T
Andrej Karpathy 194b7f4b22 first leet codes
2021-11-12 20:40:19 -08:00

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)