On Mon, Jan 05, 2015 at 11:20:11AM +0000, Alexis Lee wrote:
Hopefully sufficiently documented to stand without introduction:
Er, not really. What does distance mean in the context of classes? When would you use this? Can you give some examples, e.g. what's the distance between int and str?
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
Shouldn't that be an exception?
here, distance = srcs 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.
Explain it first :-)