[gnue] r9948 - trunk/gnue-common/src/base

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
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.