def bfs(start):
    """
    Breadth first search

    Yields all nodes found from the starting point

    :param start: start node
    """
    to_visit = [start]
    visited = {start}
    while to_visit:
        node = to_visit.pop(0)
        yield node
        if node.exception_analysis:
            for _, _, exception in node.exception_analysis.exceptions:
                if exception not in visited:
                    to_visit.append(exception)
                    visited.add(exception)
        for _, _, child in node.childs:
            if child not in visited:
                to_visit.append(child)
                visited.add(child)
def bfs ( start ) : to_visit = [ start ] visited = { start } while to_visit : node = to_visit . pop ( 0 ) yield node if node . exception_analysis : for _ , _ , exception in node . exception_analysis . exceptions : if exception not in visited : to_visit . append ( exception ) visited . add ( exception ) for _ , _ , child in node . childs : if child not in visited : to_visit . append ( child ) visited . add ( child )
Breadth first search

    Yields all nodes found from the starting point

    :param start: start node