Update README.md

This commit is contained in:
2025-03-17 15:48:35 +00:00
parent fc1a3db03c
commit 6bb479ca63

View File

@@ -1,13 +1,14 @@
## sqlite3 [25-03-17] ## sqlite3 [25-03-17]
```py ```py
import sqlite3, os, json
class SQL: class SQL:
def __init__(sql, db='.db'): def __init__(sql, db='.db'):
import sqlite3, os; sql.db = db
if not os.path.exists(db): os.makedirs(db); SQL(db).con.executescript( if not os.path.exists(db): os.makedirs(db); SQL(db).con.executescript(
"PRAGMA journal_mode=WAL; CREATE TABLE kv(k,v,t DEFAULT CURRENT_TIMESTAMP);" "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);") "CREATE INDEX idx_kv_v ON kv(v); CREATE INDEX idx_kv_k_t ON kv(k,t DESC);")
(con := sqlite3.connect(f'{db}/sql', check_same_thread=False, (con := sqlite3.connect(f'{db}/sql', check_same_thread=False,
isolation_level=None)).execute(f"PRAGMA busy_timeout={1e9}"); sql.con = con isolation_level=None)).execute(f"PRAGMA busy_timeout={1e9}")
sql.con, sql.db = con, db
def __call__(sql, q, *p): return [*sql.con.execute(q, p)] def __call__(sql, q, *p): return [*sql.con.execute(q, p)]
def __setitem__(sql, k, v): import json; return sql("INSERT INTO kv(k,v) VALUES(?,?)", def __setitem__(sql, k, v): import json; return sql("INSERT INTO kv(k,v) VALUES(?,?)",
k, v if type(v) is bytes else json.dumps(v, ensure_ascii=False)) k, v if type(v) is bytes else json.dumps(v, ensure_ascii=False))