Module gundb.backends.dummykv
Source code
from collections import defaultdict
from .backend import BackendMixin
import json
def format_object_id(schema, id):
return "{}://{}".format(schema, id)
class FakeKV:
def __init__(self):
self._database = {}
def set(self, key, obj):
self._database[key] = obj
def exists(self, key):
return key in self._database
def get(self, key, default):
try:
return self._database[key]
except:
return default
class DummyKV(BackendMixin):
def __init__(self):
self.db = defaultdict(lambda: defaultdict(lambda: defaultdict()))
self.kv = FakeKV()
def get_object_by_id(self, obj_id, schema=None):
full_id = format_object_id(schema, obj_id)
return self.kv.get(full_id, {'id':obj_id})
def set_object_attr(self, obj, attr, val):
obj[attr] = val
return obj
def save_object(self, obj, obj_id, schema=None):
full_id = format_object_id(schema, obj_id)
self.kv.set(full_id, json.dumps(obj))
def __setitem__(self, k, v):
self.db[k] = v
def __getitem__(self, k):
return self.db[k]
def list(self):
return self.db.items()
Functions
def format_object_id(schema, id)
-
Source code
def format_object_id(schema, id): return "{}://{}".format(schema, id)
Classes
class DummyKV
-
Source code
class DummyKV(BackendMixin): def __init__(self): self.db = defaultdict(lambda: defaultdict(lambda: defaultdict())) self.kv = FakeKV() def get_object_by_id(self, obj_id, schema=None): full_id = format_object_id(schema, obj_id) return self.kv.get(full_id, {'id':obj_id}) def set_object_attr(self, obj, attr, val): obj[attr] = val return obj def save_object(self, obj, obj_id, schema=None): full_id = format_object_id(schema, obj_id) self.kv.set(full_id, json.dumps(obj)) def __setitem__(self, k, v): self.db[k] = v def __getitem__(self, k): return self.db[k] def list(self): return self.db.items()
Ancestors
Methods
def get_object_by_id(self, obj_id, schema=None)
-
Source code
def get_object_by_id(self, obj_id, schema=None): full_id = format_object_id(schema, obj_id) return self.kv.get(full_id, {'id':obj_id})
def list(self)
-
Source code
def list(self): return self.db.items()
def save_object(self, obj, obj_id, schema=None)
-
Source code
def save_object(self, obj, obj_id, schema=None): full_id = format_object_id(schema, obj_id) self.kv.set(full_id, json.dumps(obj))
def set_object_attr(self, obj, attr, val)
-
Source code
def set_object_attr(self, obj, attr, val): obj[attr] = val return obj
Inherited members
class FakeKV
-
Source code
class FakeKV: def __init__(self): self._database = {} def set(self, key, obj): self._database[key] = obj def exists(self, key): return key in self._database def get(self, key, default): try: return self._database[key] except: return default
Methods
def exists(self, key)
-
Source code
def exists(self, key): return key in self._database
def get(self, key, default)
-
Source code
def get(self, key, default): try: return self._database[key] except: return default
def set(self, key, obj)
-
Source code
def set(self, key, obj): self._database[key] = obj