Module gundb.backends.udb

Source code
import dbm
import json
import os
from ..consts import METADATA, STATE, SOUL
# unix db

def format_object_id(schema, id):
    return "{}://{}".format(schema, id)
class UDB:
    def __init__(self, path="/tmp/gun.db"):
        if os.path.exists(path):
            self.db = dbm.open(path)
        else:
            self.db = dbm.open(path, "c")

    def get_object_by_id(self, obj_id, schema=None):
        full_id = format_object_id(schema, obj_id)
        try:
            return json.loads(self.db[full_id])
        except:
            return  {'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.db[full_id] = json.dumps(obj)
        self.savedb()

    def savedb(self):
        self.db.close()

    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 UDB (path='/tmp/gun.db')
Source code
class UDB:
    def __init__(self, path="/tmp/gun.db"):
        if os.path.exists(path):
            self.db = dbm.open(path)
        else:
            self.db = dbm.open(path, "c")

    def get_object_by_id(self, obj_id, schema=None):
        full_id = format_object_id(schema, obj_id)
        try:
            return json.loads(self.db[full_id])
        except:
            return  {'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.db[full_id] = json.dumps(obj)
        self.savedb()

    def savedb(self):
        self.db.close()

    def __setitem__(self, k, v):
        self.db[k] = v

    def __getitem__(self, k):
        return self.db[k]

    def list(self):
        return self.db.items()

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)
    try:
        return json.loads(self.db[full_id])
    except:
        return  {'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.db[full_id] = json.dumps(obj)
    self.savedb()
def savedb(self)
Source code
def savedb(self):
    self.db.close()
def set_object_attr(self, obj, attr, val)
Source code
def set_object_attr(self, obj, attr, val):
    obj[attr] = val
    return obj