diff --git a/sqlite3-python/README.md b/sqlite3-python/README.md index cf86a49..8428091 100644 --- a/sqlite3-python/README.md +++ b/sqlite3-python/README.md @@ -9,6 +9,24 @@ sql("SELECT * FROM sqlite_master WHERE type = 'table'") ``` # Dict-like +```python +def SQL(): + from sqlite3 import connect, Row + (con := connect('.db.sql', isolation_level=None)).row_factory = Row + sql = type('', (), dict( + __call__=lambda _, q, *p: list(map(dict, con.execute(q, p))), + __iter__=lambda sql: (kv.values() for kv in sql('SELECT * FROM kv')), + __getitem__=lambda sql, k: sql('SELECT v FROM kv WHERE k=?', k)[0]['v'], + __setitem__=lambda sql, k, v: + sql('INSERT or REPLACE INTO kv VALUES(?,?)', k, v), + ))() + sql('PRAGMA journal_mode=wal') + sql('PRAGMA busy_timeout='f'{1e9}') + sql('CREATE TABLE IF NOT EXISTS kv(k PRIMARY KEY, v)') + return sql +sql = SQL() +``` + ```python def Dict(db='dict.db', *, sqlite3=__import__('sqlite3')): sql = sqlite3.connect(db, isolation_level=None, timeout=1e999).execute