1) They do not provide the __subclasses__-method
2) It's not possible to make a weak reference to them
Below is a patch that effectively ignores them:
Index: lib/sqlalchemy/util.py
===================================================================
--- lib/sqlalchemy/util.py (revision 4964)
+++ lib/sqlalchemy/util.py (working copy)
@@ -401,6 +401,8 @@
while process:
c = process.pop()
for b in [_ for _ in c.__bases__ if _ not in hier]:
+ if isinstance(b, types.ClassType):
+ continue
process.append(b)
hier.add(b)
if c.__module__ == '__builtin__':
Would it be reasonable to support legacy code this way?
\malthe