diff options
Diffstat (limited to 'reconfigure/items/bound.py')
-rw-r--r-- | reconfigure/items/bound.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/reconfigure/items/bound.py b/reconfigure/items/bound.py index f096965..fed73f4 100644 --- a/reconfigure/items/bound.py +++ b/reconfigure/items/bound.py @@ -84,7 +84,7 @@ class BoundDictionary (BoundCollection): self.datadict = dict((self.key(x), x) for x in self.data) def to_dict(self): - return dict((k, x.to_dict() if hasattr(x, 'to_dict') else x) for k, x in self.iteritems()) + return dict((k, x.to_dict() if hasattr(x, 'to_dict') else x) for k, x in self.items()) def __getitem__(self, key): self.rebuild_dict() @@ -95,6 +95,7 @@ class BoundDictionary (BoundCollection): if not key in self: self.append(value) self.datadict[key] = value + self.rebuild_dict() def __contains__(self, key): self.rebuild_dict() @@ -105,7 +106,10 @@ class BoundDictionary (BoundCollection): return self.datadict.__iter__() def iteritems(self): - return self.datadict.iteritems() + self.rebuild_dict() + return self.datadict.items() + + items = iteritems def setdefault(self, k, v): if not k in self: @@ -114,10 +118,11 @@ class BoundDictionary (BoundCollection): return self[k] def values(self): + self.rebuild_dict() return self.data def update(self, other): - for k, v in other.iteritems(): + for k, v in other.items(): self[k] = v def pop(self, key): @@ -136,7 +141,7 @@ class BoundData (object): """ def __init__(self, node=None, **kwargs): - if not node: + if node is None: node = self.template(**kwargs) self._node = node @@ -198,7 +203,7 @@ class BoundData (object): """ def pget(self): prop = path(self._node).get(node_property) - if prop: + if prop is not None: return getter(prop.value) else: return default @@ -206,7 +211,7 @@ class BoundData (object): def pset(self, value): if setter(value) in default_remove: node = path(self._node).get(node_property) - if node: + if node is not None: path(self._node).remove(node) else: path(self._node).set_property(node_property, setter(value)) @@ -228,7 +233,7 @@ class BoundData (object): """ def pget(self): prop = getattr(path(self._node), node_attribute) - if prop: + if prop is not None: return getter(prop) else: return getter(default) |