Merge all nodes.
(self, nodes: list[gm.Node], deps: Dependency)
| 600 | return node |
| 601 | |
| 602 | def merge(self, nodes: list[gm.Node], deps: Dependency) -> gm.Node: |
| 603 | """Merge all nodes.""" |
| 604 | if len(nodes) < 2: |
| 605 | return |
| 606 | |
| 607 | node0, *nodes1 = nodes |
| 608 | all_nodes = self.type2nodes[type(node0)] |
| 609 | |
| 610 | # find node0 that exists in all_nodes to be the rep |
| 611 | # and merge all other nodes into node0 |
| 612 | for node in nodes: |
| 613 | if node in all_nodes: |
| 614 | node0 = node |
| 615 | nodes1 = [n for n in nodes if n != node0] |
| 616 | break |
| 617 | return self.merge_into(node0, nodes1, deps) |
| 618 | |
| 619 | def merge_into( |
| 620 | self, node0: gm.Node, nodes1: list[gm.Node], deps: Dependency |