[Checkins] SVN: zope.interface/trunk/src/zope/interface/interface.py reverted r81363 since it "breaks assigning to __class__, which the twisted folks depend on"

Andreas Zeidler az at zitc.de
Mon Jan 14 15:58:02 EST 2008


Log message for revision 82877:
  reverted r81363 since it "breaks assigning to __class__, which the twisted folks depend on"
  

Changed:
  U   zope.interface/trunk/src/zope/interface/interface.py

-=-
Modified: zope.interface/trunk/src/zope/interface/interface.py
===================================================================
--- zope.interface/trunk/src/zope/interface/interface.py	2008-01-14 18:45:59 UTC (rev 82876)
+++ zope.interface/trunk/src/zope/interface/interface.py	2008-01-14 20:58:02 UTC (rev 82877)
@@ -274,7 +274,7 @@
 
     def __setBases(self, bases):
         # Register ourselves as a dependent of our old bases
-        for b in getattr(self, '__bases__', ()):
+        for b in self.__bases__:
             b.unsubscribe(self)
 
         # Register ourselves as a dependent of our bases
@@ -284,12 +284,12 @@
 
         self.changed(self)
 
-    def __setattr__(self, name, value):
-        if name == '__bases__':
-            self.__setBases(value)
-        else:
-            self.__dict__[name] = value
+    __bases__ = property(
 
+        lambda self: self.__dict__.get('__bases__', ()),
+        __setBases,
+        )
+
     def changed(self, originally_changed):
         """We, or something we depend on, have changed
         """



More information about the Checkins mailing list