[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ Removed superGetAttr fallback from SkinnableObjectManager. None of its base classes have a `__getattr__` method anymore.

Hanno Schlichting plone at hannosch.info
Sat Nov 29 08:40:24 EST 2008


Log message for revision 93445:
  Removed superGetAttr fallback from SkinnableObjectManager. None of its base classes have a `__getattr__` method anymore.
  

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/Skinnable.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2008-11-29 12:36:03 UTC (rev 93444)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2008-11-29 13:40:23 UTC (rev 93445)
@@ -4,10 +4,13 @@
 2.2.0 (unreleased)
 ------------------
 
+- Removed superGetAttr fallback from SkinnableObjectManager. None of its base
+  classes have a `__getattr__` method anymore.
+
 - PortalObject: Removed backwards compatibility code in getSiteManager.
   Please use CMFDefault's upgrade steps for upgrading old CMF sites.
 
-- Fixed compatibility with non-string execeptoins on Zope trunk.
+- Fixed compatibility with non-string exceptions on Zope trunk.
 
 - Added remove support to GenericSetup types tool exportimport handler.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/Skinnable.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/Skinnable.py	2008-11-29 12:36:03 UTC (rev 93444)
+++ Products.CMFCore/trunk/Products/CMFCore/Skinnable.py	2008-11-29 13:40:23 UTC (rev 93445)
@@ -31,16 +31,6 @@
 logger = logging.getLogger('CMFCore.Skinnable')
 
 
-# superGetAttr is assigned to whatever ObjectManager.__getattr__
-# used to do.
-try:
-    superGetAttr = ObjectManager.__getattr__
-except AttributeError:
-    try:
-        superGetAttr = ObjectManager.inheritedAttribute('__getattr__')
-    except AttributeError:
-        superGetAttr = None
-
 _MARKER = object()  # Create a new marker object.
 
 
@@ -78,8 +68,8 @@
             sd = SKINDATA.get(get_ident())
             if sd is not None:
                 ob, skinname, ignore, resolve = sd
-                if not ignore.has_key(name):
-                    if resolve.has_key(name):
+                if not name in ignore:
+                    if name in resolve:
                         return resolve[name]
                     subob = getattr(ob, name, _MARKER)
                     if subob is not _MARKER:
@@ -91,9 +81,7 @@
                         return retval
                     else:
                         ignore[name] = 1
-        if superGetAttr is None:
-            raise AttributeError, name
-        return superGetAttr(self, name)
+        raise AttributeError, name
 
     security.declarePrivate('getSkin')
     def getSkin(self, name=None):



More information about the Checkins mailing list