def _expand_fanout(self, fanout):
        if not fanout:
            log.info("Expand | Fanout disabled, updating options")
            return False

        log.info("Expand | Checking for fanout in %d nodes", len(self))
        fanout_done = False
        for node in self.topological_order():
            fanout_options = self._get_fanout_options(node)
            if not fanout_options:
                log.debug("Expand | No fanout options found for %s", node)
                continue
            # check that all fanout options have the same length
            self._check_fanout_options(node, fanout_options)
            # no exception was raised so we can actually do the
            # fanout on the giben node
            self._fan_out(node, fanout_options)
            fanout_done = True
        return fanout_done
Check all nodes in topological order if they need to
dataset/ETHPy150Open thasso/pyjip/jip/pipelines.py/Pipeline._expand_fanout