summaryrefslogtreecommitdiff
path: root/reconfigure/items/bound.py
diff options
context:
space:
mode:
Diffstat (limited to 'reconfigure/items/bound.py')
-rw-r--r--reconfigure/items/bound.py19
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)