From cc968b637d4d3ae52d9e5ada36a46565bdfd5260 Mon Sep 17 00:00:00 2001 From: jay817 Date: Sat, 22 Feb 2025 10:43:43 +0000 Subject: [PATCH] Update README.md --- README.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6415de9..5872db1 100644 --- a/README.md +++ b/README.md @@ -6,23 +6,25 @@ __import__('concurrent').futures.ThreadPoolExecutor().submit( ## sqlite3 [25-02-22] ```py -def SQL(): - import sqlite3, os; (not os.path.exists('.db') and os.makedirs('.db') is None, - con := sqlite3.connect('.db/sql', isolation_level=None))[0] and con.executescript( +def SQL(db='.db'): + import sqlite3, os, json; (not os.path.exists(db) and os.makedirs(db) is None, + (con := sqlite3.connect(f'{db}/sql', isolation_level=None)).execute( + "PRAGMA busy_timeout="f"{1e9}"))[0] and con.executescript( "PRAGMA journal_mode=WAL; CREATE TABLE kv(k,v,t DEFAULT CURRENT_TIMESTAMP);" "CREATE INDEX idx_kv_v ON kv(v); CREATE INDEX idx_kv_k_t ON kv(k,t DESC);") - con.execute(f'PRAGMA busy_timeout={1e9}'); return type('', (), dict( - __call__=lambda _, q, *p: list(con.execute(q, p)), - __setitem__=lambda sql, k, v: sql('INSERT INTO kv(k,v) VALUES(?,?)', k, v), - __getitem__=lambda sql, k: v[0][0] if (v := - sql('SELECT v FROM kv WHERE k=? ORDER BY t DESC LIMIT 1', k)) else None, - __contains__=lambda sql, k: bool(sql('SELECT 1 FROM kv WHRE k=?', k)), - __len__=lambda sql: sql('SELECT COUNT(*) FROM kv')[0][0], + return type('', (), dict(__call__=lambda _, q, *p: list(con.execute(q, p)), + __setitem__=lambda sql, k, v: sql('INSERT INTO kv(k,v) VALUES(?,?)', + k, v if type(v) is bytes else json.dumps(v)), + __getitem__=lambda sql, k: (json.loads(v) if type(v := v[0][0]) is str else v) if + (v := sql('SELECT v FROM kv WHERE k=? ORDER BY t DESC LIMIT 1', k)) else None, __eq__=lambda sql, query: sql('SELECT * FROM kv WHERE k LIKE ?', query), __ne__=lambda sql, query: sql('SELECT * FROM kv WHERE k NOT LIKE ?', query), __delitem__=lambda sql, rows: [ sql('DELETE FROM kv WHERE k=? AND v=? AND t=?', *row) for row in rows], - ))() + __contains__=lambda sql, k: bool(sql('SELECT 1 FROM kv WHERE k=?', k)), + __len__=lambda sql: sql('SELECT COUNT(*) FROM kv')[0][0], + __iter__=iter(k[0] for k in sql('SELECT k FROM kv')), + __repr__=lambda _: f"SQL({db}/sql)"))() sql = SQL() ```