diff options
Diffstat (limited to 'ipsilon/util')
-rw-r--r-- | ipsilon/util/config.py | 4 | ||||
-rw-r--r-- | ipsilon/util/data.py | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/ipsilon/util/config.py b/ipsilon/util/config.py index 523601d..5366a96 100644 --- a/ipsilon/util/config.py +++ b/ipsilon/util/config.py @@ -178,6 +178,8 @@ class List(Option): class ComplexList(List): def _check_value(self, value): + if value is None: + return if type(value) is not list: raise ValueError('The value type must be a list, not "%s"' % type(value)) @@ -202,6 +204,8 @@ class ComplexList(List): class MappingList(ComplexList): def _check_value(self, value): + if value is None: + return if type(value) is not list: raise ValueError('The value type must be a list, not "%s"' % type(value)) diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index 72e7f96..b06f00c 100644 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -377,10 +377,14 @@ class Store(Log): datum = data[uid] for name in datum: if name in curvals: - q.update({'value': datum[name]}, - {'uuid': uid, 'name': name}) + if datum[name] is None: + q.delete({'uuid': uid, 'name': name}) + else: + q.update({'value': datum[name]}, + {'uuid': uid, 'name': name}) else: - q.insert((uid, name, datum[name])) + if datum[name] is not None: + q.insert((uid, name, datum[name])) q.commit() except Exception, e: # pylint: disable=broad-except |