Source code for python_humble_utils.classes
from typing import Collection, Type
[docs]def get_all_subclasses(cls: Type, including_self: bool = False) -> Collection[Type]:
"""Get all subclasses.
:param cls: class to lookup subclasses of.
:param including_self: whether or not the the :param cls: itself is to be accounted for.
:return: :param cls: subclasses.
"""
all_subclasses = [cls] if including_self else []
for c in cls.__subclasses__():
all_subclasses += get_all_subclasses(c, True)
return all_subclasses