def _define_output_buffers(self):
        """
        Prepare a dictionary so we know what buffers have to be update with the the output of every step.
        """

        # First define buffers that need input data
        self.target_buffers = {
            None: [(step, self.buffers[step]) for step in self._get_input_steps()]
        }

        # Go through all steps and append the buffers of their child nodes
        for step in self.steps_sorted:
            if step != self:
                child_steps = [edge[1] for edge in self.graph.out_edges(step)]
                self.target_buffers[step] = [(child_step, self.buffers[child_step]) for child_step in child_steps]
Prepare a dictionary so we know what buffers have to be update with the the output of every step.