]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Don't choke when instrumenting a class with an old-style mixin. [ticket:1078]
authorJason Kirtland <jek@discorporate.us>
Fri, 15 Aug 2008 22:59:13 +0000 (22:59 +0000)
committerJason Kirtland <jek@discorporate.us>
Fri, 15 Aug 2008 22:59:13 +0000 (22:59 +0000)
lib/sqlalchemy/orm/attributes.py

index 9ebe9f79f2273f6fdc1a57939ad6dce5dd56dbcd..7a001f18d19b0647c79c84ad429e1f6dde86f050 100644 (file)
@@ -16,6 +16,7 @@ An example of full customization is in /examples/custom_attributes.
 
 import operator
 from operator import attrgetter, itemgetter
+import types
 import weakref
 
 from sqlalchemy import util
@@ -1083,6 +1084,8 @@ class ClassManager(dict):
             self.install_descriptor(key, inst)
         self[key] = inst
         for cls in self.class_.__subclasses__():
+            if isinstance(cls, types.ClassType):
+                continue
             manager = manager_of_class(cls)
             if manager is None:
                 manager = create_manager_for_cls(cls)
@@ -1101,6 +1104,8 @@ class ClassManager(dict):
         if key in self.mutable_attributes:
             self.mutable_attributes.remove(key)
         for cls in self.class_.__subclasses__():
+            if isinstance(cls, types.ClassType):
+                continue
             manager = manager_of_class(cls)
             if manager is None:
                 manager = create_manager_for_cls(cls)