Update README.md
This commit is contained in:
38
README.md
38
README.md
@@ -7,32 +7,22 @@ __import__('concurrent').futures.ThreadPoolExecutor().submit(
|
||||
## sqlite3
|
||||
```py
|
||||
def SQL():
|
||||
def File(blob):
|
||||
try: import zmq; File.sock.send_pyobj(blob); return File.sock.recv_pyobj()
|
||||
except (AttributeError, zmq.Again):
|
||||
(sock := zmq.Context().socket(zmq.REQ)).connect('tcp://localhost:6106')
|
||||
sock.RCVTIMEO = 1000; File.sock = sock; return File(blob)
|
||||
|
||||
import sqlite3
|
||||
def File(blob):
|
||||
try: import zmq; File.sock.send_pyobj(blob); return File.sock.recv_pyobj()
|
||||
except (AttributeError, zmq.Again):
|
||||
(sock := zmq.Context().socket(zmq.REQ)).connect('tcp://localhost:6106')
|
||||
sock.RCVTIMEO = 1000; File.sock = sock; return File(blob)
|
||||
import sqlite3, os; init = not os.path.exists('.db')
|
||||
(con := sqlite3.connect('.db', isolation_level=None)).row_factory = sqlite3.Row
|
||||
con.executescript("""
|
||||
if init: con.executescript("""
|
||||
PRAGMA journal_mode=WAL;
|
||||
CREATE TABLE IF NOT EXISTS kv(k, v, t DEFAULT CURRENT_TIMESTAMP);
|
||||
CREATE INDEX IF NOT EXISTS index_kv_v ON kv(v);
|
||||
CREATE INDEX IF NOT EXISTS index_kv_k_t ON kv(k, t DESC);
|
||||
""")
|
||||
def setitem(sql, filename, blob):
|
||||
assert isinstance(blob, bytes)
|
||||
sql('INSERT INTO kv(k, v) VALUES(?,?)', filename, File(blob))
|
||||
def getitem(sql, filename):
|
||||
if sha1 := sql('SELECT v FROM kv WHERE k=? ORDER BY t DESC', filename):
|
||||
return File(sha1[0]['v'])
|
||||
def contains(sql, filename):
|
||||
return bool(sql('SELECT 1 FROM kv WHERE k=?', filename))
|
||||
def df(sql):
|
||||
import pandas as pd
|
||||
return pd.DataFrame(sql('SELECT * FROM kv'))
|
||||
CREATE TABLE kv(k, v, t DEFAULT CURRENT_TIMESTAMP);
|
||||
CREATE INDEX index_kv_v ON kv(v);
|
||||
CREATE INDEX index_kv_k_t ON kv(k, t DESC);""")
|
||||
return type('', (), dict(__call__=lambda _, q, *p: list(map(dict, con.execute(q, p))),
|
||||
__setitem__=setitem, __getitem__=getitem, __contains__=contains, df=df))()
|
||||
__setitem__=lambda sql, k, v: sql('INSERT INTO kv(k,v) VALUES(?,?)', k, File(v)),
|
||||
__getitem__=lambda sql, k: File(v[0]['v']) 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 WHERE k=?', k))))()
|
||||
sql = SQL()
|
||||
```
|
||||
Reference in New Issue
Block a user