[Python-ideas] inspect.getclassdistance

Alexis Lee alexisl at hp.com
Mon Jan 5 12:20:11 CET 2015

Hopefully sufficiently documented to stand without introduction:

    def getclassdistance(srcs, dst):
        """srcs may be either a single class or a list of (class, distance) pairs.
        dst is the superclass to find.
        Performs a breadth-first search for dst, returning the shortest distance.

        if type(srcs) != list:
            srcs = [(srcs, 0)]
        if len(srcs) == 0:
            return None
        here, distance = srcs[0]
        if here == dst:
            return distance
        newSrc = srcs[1:] + [(c, distance + 1) for c in list(here.__bases__)]
        return classDistance(newSrc, dst)

If this is already implemented and I just couldn't find it, I'm more
than happy to withdraw the idea.

Nova Engineer, HP Cloud.  AKA lealexis, lxsli.

More information about the Python-ideas mailing list