KV provides a dictionary-like interface on top of SQLite. Keys can be unicode strings, numbers or None. Values are stored as JSON.
>>> from kv import KV >>> db = KV('/tmp/demo.kv') >>> db['hello'] = 'world' >>> db[42] = ['answer', 2, {'ultimate': 'question'}] >>> dict(db) {42: [u'answer', 2, {u'ultimate': u'question'}], u'hello': u'world'}
There is a locking facility that uses SQLite's transaction API:
>>> with kv.lock(): ... l = db[42] ... l += ['or is it?'] ... db[42] = l
And that's about it. The code is really simple.