code: def _debug_dump_topology(
      topology: Topology, log_to_stdout: bool = True
  ) -> None:
      """Print out current execution state for the topology for debugging.
  
      Args:
          topology: The topology to debug.
      """
      logger.get_logger(log_to_stdout).info("Execution Progress:")
      for i, (op, state) in enumerate(topology.items()):
          logger.get_logger(log_to_stdout).info(
              f"{i}: {state.summary_str()}, "
              f"Blocks Outputted: {state.num_completed_tasks}/{op.num_outputs_total()}"
          )
      logger.get_logger(log_to_stdout).info("")
  
imports: import os
  import threading
  import time
  import uuid
  from typing import Dict, Iterator, List, Optional
  from ray.data._internal.dataset_logger import DatasetLogger
  from ray.data._internal.execution.autoscaling_requester import get_or_create_autoscaling_requester_actor
  from ray.data._internal.execution.backpressure_policy import BackpressurePolicy, get_backpressure_policies
  from ray.data._internal.execution.interfaces import ExecutionOptions, ExecutionResources, Executor, OutputIterator, PhysicalOperator, RefBundle
  from ray.data._internal.execution.operators.input_data_buffer import InputDataBuffer
  from ray.data._internal.execution.streaming_executor_state import DEFAULT_OBJECT_STORE_MEMORY_LIMIT_FRACTION, AutoscalingState, OpState, Topology, TopologyResourceUsage, build_streaming_topology, process_completed_tasks, select_operator_to_run, update_operator_states
  from ray.data._internal.progress_bar import ProgressBar
  from ray.data._internal.stats import DatasetStats, StatsManager
  from ray.data._internal.util import cluster_resources
  from ray.data.context import DataContext
label_desc: Use image node_id 2 for calling a global function with example usage: _debug_dump_topology(topology, log_to_stdout) without return types