def set(name, value, value_type=str): try: if value_type == 'json': value_formated = json.dumps(value) elif value_type is bool: value_formated = 1 if value else 0 else: value_formated = value_type(value) except ValueError: return False Setting.insert(name=name, value=value_formated).on_conflict_replace().execute() return True
def __setitem__(self, k, v): ''' provide logic to see if the DB needs a replace or new item (built into dict already) ''' logger.debug("_setitem_") if self.has_key(k): # get the object from the DB, and update it. r = Setting.get(key=k) r.value = v else: r = Setting(key=k, value=v) logger.debug("Saving item to DB") r.save() dict.__setitem__(self, k, v)
def __init__(self, name="dbdict.db"): logger.debug("Calling dbinit") dbInit(name) logger.debug("Updating all my items from the DB") for s in Setting.select(): dict.__setitem__(self, s.key,s.value) dict.__init__(self)
def get(name, value_type=str, default=None): try: setting = Setting.get(Setting.name == name) value = setting.value if value_type == 'json': return json.loads(value) elif value_type is bool: return bool(int(value)) else: return value_type(value) except (Setting.DoesNotExist, ValueError): return default
def __delitem__(self, k): logger.debug("__delitem__") r = Setting.get(key=k) r.delete_instance() return dict.__delitem__(self, k)