def collectGraph(self, graph=None):

        # Initialize graph if necessary
        if graph is None:
            graph = {'nodes': list(), 'edges': list()}

        # Cycle detection - continue, but don't re-add this node to the graph
        if id(self) in [id(n) for n in graph['nodes']]:
            return graph

        # Add this node to the graph
        graph['nodes'].append(self)
        # Add all edges
        graph['edges'].extend([(x, self) for x in self.children()])
        for x in self.children():
            # Recursively add children and edges to the graph. This mutates
            # graph
            x.collectGraph(graph)

        # Return the graph
        return graph
Test the _write_sheet_views() method with split panes + selection
dataset/ETHPy150Open uwescience/raco/raco/algebra.py/Operator.collectGraph--crossover with--dataset/ETHPy150Open jmcnamara/XlsxWriter/xlsxwriter/test/worksheet/test_write_sheet_views8.py/TestWriteSheetViews.test_write_sheet_views1