code: 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
docs: Get all decendents for a given class