'Get all decendents for a given class'

def _get_all_decendents(self, cls):

    decendents = {}
    for sc in cls.__sub_classes__:
        decendents[sc.__name__] = sc
        decendents.update(self._get_all_decendents(sc))
    return decendents
