summaryrefslogtreecommitdiffstats
path: root/ipsilon/util
diff options
context:
space:
mode:
Diffstat (limited to 'ipsilon/util')
-rw-r--r--ipsilon/util/config.py4
-rw-r--r--ipsilon/util/data.py10
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