/
memory.py
41 lines (28 loc) · 989 Bytes
/
memory.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from . import Backend
class Memory(Backend):
def __init__(self):
self._data = dict()
def keys(self, pattern='*'):
pattern = pattern.replace('*', '')
return [key for key in self._data if key.startswith(pattern)]
def delete(self, *names):
for name in names:
self._data.pop(name, None)
def sadd(self, name, *values):
if name in self._data:
self._data[name].update(values)
else:
self._data[name] = set(values)
def srem(self, name, *values):
if name in self._data:
self._data[name].difference_update(values)
def sismember(self, name, value):
if name in self._data:
return value in self._data[name]
return False
def smembers(self, name):
return self._data.get(name, [])
def hmset(self, name, mapping):
self._data[name] = mapping
def hgetall(self, name):
return self._data.get(name, dict())