code: def _to_block_iterator(
      self,
  ) -> Tuple[
      Iterator[Tuple[ObjectRef[Block], BlockMetadata]],
      Optional[DatasetStats],
      bool,
  ]:
      ds = self._base_dataset
      block_iterator, stats, executor = ds._plan.execute_to_iterator()
      ds._current_executor = executor
      return block_iterator, stats, False
  
file_path: ray/python/ray/data/_internal/iterator/iterator_impl.py
imports: from typing import TYPE_CHECKING, Iterator, Optional, Tuple, Union
  from ray.data._internal.stats import DatasetStats
  from ray.data._internal.util import create_dataset_tag
  from ray.data.block import Block, BlockMetadata
  from ray.data.iterator import DataIterator
  from ray.types import ObjectRef
label_desc: Use image node_id 3 for calling the DataIteratorImpl obj's underlying member method code with example usage: obj._to_block_iterator() and returns: block_iterator,  stats,  False