def node_subclasses(root, abstract = False):
    """Get all subclasses of node.

    :Parameters:
        * `abstract`: If set to ``True`` all abstract classes are included as well. Default is
          ``False``
    """
    classes = []
    for c in utils.subclass_iterator(root):
        try:
            info = get_node_info(c)

            node_type = info.get("type")
            if node_type != "abstract":
                classes.append(c)
        except __HOLE__:
            pass

    return classes
dataset/ETHPy150Open Stiivi/brewery/brewery/nodes/base.py/node_subclasses