code: def _init_sub_dsp(self, dsp, fringe, outputs, no_call, initial_dist, index,
                        full_name):
          
  
          # Initialize as sub-dispatcher.
          sol = self.__class__(
              dsp, {}, outputs, False, None, None, no_call, False,
              wait_in=self._wait_in.get(dsp, None), index=self.index + index,
              full_name=full_name
          )
  
          sol.sub_sol = self.sub_sol
  
          for f in sol.fringe:  # Update the fringe.
              item = (initial_dist + f[0], (2,) + f[1][1:], f[-1])
              heapq.heappush(fringe, item)
  
          return sol
docs: Initialize the dispatcher as sub-dispatcher and update the fringe.
  
          :param fringe:
              Heapq of closest available nodes.
          :type fringe: list[(float | int, bool, (str, Dispatcher)]
  
          :param outputs:
              Ending data nodes.
          :type outputs: list[str], iterable
  
          :param no_call:
              If True data node estimation function is not used.
          :type no_call: bool