INNER CODE UNIT · Python
iter_leaf_subclasses
broadinstitute/viral-ngs · src/viral_ngs/core/__init__.py:28
def iter_leaf_subclasses(a_class):
"Iterate over subclasses at all levels that don't themselves have a subclass"
is_leaf = True
for subclass in sorted(a_class.__subclasses__(), key=operator.attrgetter("__name__")):
is_leaf = False
for leaf_class in iter_leaf_subclasses(subclass):
if not getattr(leaf_class, '_skiptest', False):
yield leaf_class
if is_leaf:
yield a_class
def all_tool_classes():
return iter_leaf_subclasses(Tool)
def get_tool_by_name(name):
if name not in installed_tools: