class_docstr: A blocking operator that executes once its inputs are complete.
  
  This operator implements distributed sort / shuffle operations, etc.
docstr: Create an AllToAllOperator.
  Args:
      bulk_fn: The blocking transformation function to run. The inputs are the
          list of input ref bundles, and the outputs are the output ref bundles
          and a stats dict.
      input_op: Operator generating input data for this op.
      num_outputs: The number of expected output bundles for progress bar.
      sub_progress_bar_names: The names of internal sub progress bars.
      name: The name of this operator.
docstr_tok: ["Create","an","AllToAllOperator",".","Args",":","bulk_fn",":","The","blocking","transformation","function","to","run",".","The","inputs","are","the","list","of","input","ref","bundles",",","and","the","outputs","are","the","output","ref","bundles","and","a","stats","dict",".","input_op",":","Operator","generating","input","data","for","this","op",".","num_outputs",":","The","number","of","expected","output","bundles","for","progress","bar",".","sub_progress_bar_names",":","The","names","of","internal","sub","progress","bars",".","name",":","The","name","of","this","operator","."]
code: def __init__(
      self,
      bulk_fn: AllToAllTransformFn,
      input_op: PhysicalOperator,
      target_max_block_size: Optional[int],
      num_outputs: Optional[int] = None,
      sub_progress_bar_names: Optional[List[str]] = None,
      name: str = "AllToAll",
  ):
      """Create an AllToAllOperator.
      Args:
          bulk_fn: The blocking transformation function to run. The inputs are the
              list of input ref bundles, and the outputs are the output ref bundles
              and a stats dict.
          input_op: Operator generating input data for this op.
          num_outputs: The number of expected output bundles for progress bar.
          sub_progress_bar_names: The names of internal sub progress bars.
          name: The name of this operator.
      """
      self._bulk_fn = bulk_fn
      self._next_task_index = 0
      self._num_outputs = num_outputs
      self._sub_progress_bar_names = sub_progress_bar_names
      self._sub_progress_bar_dict = None
      self._input_buffer: List[RefBundle] = []
      self._output_buffer: List[RefBundle] = []
      self._stats: StatsDict = {}
      super().__init__(name, [input_op], target_max_block_size)
  
imports: from typing import List, Optional
  from ray.data._internal.execution.interfaces import AllToAllTransformFn, PhysicalOperator, RefBundle, TaskContext
  from ray.data._internal.logical.interfaces import LogicalOperator
  from ray.data._internal.progress_bar import ProgressBar
  from ray.data._internal.stats import StatsDict
label_desc: Use image node_id 1 to create a new AllToAllOperator object from inherited base classes: PhysicalOperator with example: obj = AllToAllOperator(bulk_fn, input_op, target_max_block_size, num_outputs, sub_progress_bar_names, name)