diff --git a/sqlite3-python/README.md b/sqlite3-python/README.md index 7dfae9f..baf07fc 100644 --- a/sqlite3-python/README.md +++ b/sqlite3-python/README.md @@ -10,17 +10,17 @@ sql('SELECT * FROM sqlite_master WHERE type="table"') # Simple ```python -def SQL(): - sql = __import__('sqlite3').connect('sql.db', isolation_level=None, timeout=1e999).execute - sql('PRAGMA journal_mode = WAL') - sql('CREATE TABLE IF NOT EXISTS dict (key PRIMARY KEY, value)') +def Dict(db='dict.db', *, sqlite3=__import__('sqlite3')): + sql = sqlite3.connect(db, isolation_level=None, timeout=1e999).execute + sql('PRAGMA journal_mode=WAL'); sql('CREATE TABLE IF NOT EXISTS d(k PRIMARY KEY, v)') return type('', (), dict(__call__=lambda _, *args: list(sql(*args)), - __setitem__=lambda _, *kv:sql('INSERT OR REPLACE INTO dict VALUES(?,?)',kv), - __getitem__=lambda sql,*k:sql('SELECT * FROM dict WHERE key=?', k)[0][1]))() -# -sql = SQL() + __setitem__=lambda sql, *kv: sql('INSERT OR REPLACE INTO d VALUES (?,?)', kv), + __getitem__=lambda sql, *k: sql('SELECT v FROM d WHERE k = ?', k)[0][0], + __iter__=lambda sql: (k[0] for k in sql('SELECT k FROM d'))))() +sql = Dict() sql[4] = 2 print(sql[4]) # 2 +print(list(sql)) # [4] ``` # Class