示例#1
0
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
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
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
示例#5
0
    def __delitem__(self, k):
        logger.debug("__delitem__")
        r = Setting.get(key=k)
        r.delete_instance()

        return dict.__delitem__(self, k)