Author: reinhard
Date: 2009-10-08 17:14:12 -0500 (Thu, 08 Oct 2009)
New Revision: 9948
Modified:
trunk/gnue-common/src/base/tree.py
Log:
Only store explicitly set attributes to be able to distinguish between
explicitly set attributes and attributes still carrying the default value.
Modified: trunk/gnue-common/src/base/tree.py
===================================================================
--- trunk/gnue-common/src/base/tree.py 2009-10-08 21:13:55 UTC (rev 9947)
+++ trunk/gnue-common/src/base/tree.py 2009-10-08 22:14:12 UTC (rev 9948)
@@ -758,13 +758,11 @@
#: Attributes
self.__attribs = {}
- for (attrib, definition) in self._node_attribs_.items():
- self.__attribs[attrib] = definition.get('default')
-
# Set name attribute first so the object already has a nice string
# representation in case setting any of the other attributes causes an
# exception.
- self.name = name
+ if name is not None:
+ self.name = name
for (attrib, value) in kwargs.items():
self.__set_attrib__(attrib, value)
@@ -817,11 +815,13 @@
if not self._node_attribs_.has_key(name):
raise AttributeError(name)
- value = self.__attribs[name]
+ definition = self._node_attribs_[name]
+ value = self.__attribs.get(name, definition.get('default'))
+
# If this is a reference to another node, look for it in the parent's
# node dictionary
- target_type = self._node_attribs_[name]['type']
+ target_type = definition['type']
if issubclass(target_type, NamedNode):
return self.__root__.__get_node_dict__(target_type)[value]
else:
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.