예제 #1
0
    def run(self):
        self.update_ports()

        for node in self.sub_graph_input_nodes:
            node._parent = self

        start_nodes = []
        if self._marked_ports:
            for port in self._marked_ports:
                index = self.input_ports().index(port)
                for node in self.sub_graph_input_nodes:
                    if node.get_property('input index') == index:
                        start_nodes.append(node)
            self._marked_ports = []
        else:
            start_nodes = self.sub_graph_input_nodes

        nodes = topological_sort_by_down(start_nodes=start_nodes)

        for node in nodes:
            if node.disabled():
                node.when_disabled()
            else:
                node.cook()
            if node.has_error:
                self.error("/" + node.view.toolTip())
                break
예제 #2
0
def update_nodes(nodes):
    _update_nodes(topological_sort_by_down(all_nodes=nodes))
예제 #3
0
def update_node_down_stream(nodes):
    if not isinstance(nodes, list):
        nodes = [nodes]
    _update_nodes(topological_sort_by_down(start_nodes=nodes))
예제 #4
0
def update_node_down_stream(node):
    _update_nodes(topological_sort_by_down(start_nodes=[node]))