From fc059ca9b0890d26faca64c44e8927f057b76d99 2011-09-20 20:33:22
From: MinRK <benjaminrk@gmail.com>
Date: 2011-09-20 20:33:22
Subject: [PATCH] cleanup inheritance line in auto-config files

rather than explicitly excluding particular base classes,
exclude any base classes that have no config traits to inherit.

---

diff --git a/IPython/config/configurable.py b/IPython/config/configurable.py
index 3dc973a..8cfb695 100755
--- a/IPython/config/configurable.py
+++ b/IPython/config/configurable.py
@@ -207,8 +207,9 @@ class Configurable(HasTraits):
         for parent in cls.mro():
             # only include parents that are not base classes
             # and are not the class itself
-            if issubclass(parent, Configurable) and \
-                    not parent in (Configurable, SingletonConfigurable, cls):
+            # and have some configurable traits to inherit
+            if parent is not cls and issubclass(parent, Configurable) and \
+                    parent.class_traits(config=True):
                 parents.append(parent)
         
         if parents: