Update sqlite3/README.md
This commit is contained in:
@@ -13,8 +13,7 @@ class DB(sqlite3.Connection):
|
|||||||
''')
|
''')
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
if not isinstance(value, bytes):
|
if not isinstance(value, bytes): value = json.dumps(value)
|
||||||
value = json.dumps(value)
|
|
||||||
with self:
|
with self:
|
||||||
cur = self.execute('''
|
cur = self.execute('''
|
||||||
INSERT OR REPLACE INTO kv_store
|
INSERT OR REPLACE INTO kv_store
|
||||||
@@ -31,28 +30,29 @@ class DB(sqlite3.Connection):
|
|||||||
if result:
|
if result:
|
||||||
if isinstance(result[0], str):
|
if isinstance(result[0], str):
|
||||||
try: return json.loads(result[0])
|
try: return json.loads(result[0])
|
||||||
except: pass
|
except json.JSONDecodeError: pass
|
||||||
return result[0]
|
return result[0]
|
||||||
|
|
||||||
def delete(self, key):
|
def delete(self, key):
|
||||||
with self:
|
with self:
|
||||||
cur = self.execute('''
|
cur = self.execute('''
|
||||||
DELETE FROM kv_store WHERE key = ?
|
DELETE FROM kv_store
|
||||||
|
WHERE key = ?
|
||||||
''', (key,))
|
''', (key,))
|
||||||
return {"deleted_count": cur.rowcount}
|
return {"deleted_count": cur.rowcount}
|
||||||
|
|
||||||
|
|
||||||
def keys(self, pattern='*'):
|
def keys(self, pattern='*'):
|
||||||
pattern = pattern.translate(str.maketrans({
|
pattern = pattern.translate(str.maketrans({
|
||||||
'\\': '\\\\', '%': '\\%', '_': '\\_', '*': '%', '?': '_'
|
'\\': '\\\\', '%': '\\%', '_': '\\_', '*': '%', '?': '_'
|
||||||
}))
|
}))
|
||||||
|
|
||||||
with self:
|
with self:
|
||||||
cur = self.execute('''
|
result = self.execute('''
|
||||||
SELECT key FROM kv_store
|
SELECT key FROM kv_store
|
||||||
WHERE key LIKE ? ESCAPE '\\'
|
WHERE key LIKE ? ESCAPE '\\'
|
||||||
''', (pattern,))
|
''', (pattern,)).fetchall()
|
||||||
return [row[0] for row in cur.fetchall()]
|
return [row[0] for row in result]
|
||||||
|
|
||||||
|
def __repr__(self): return repr(self.keys())
|
||||||
```
|
```
|
||||||
# Usage
|
# Usage
|
||||||
```python
|
```python
|
||||||
|
|||||||
Reference in New Issue
Block a user