code: def add(self, item: Mapping[str, Any]) -> None:
      assert isinstance(item, collections.abc.Mapping), item
  
      import pyarrow
  
      if self._builder is None:
          try:
              check = ArrowBlockBuilder()
              check.add(item)
              check.build()
              self._builder = ArrowBlockBuilder()
          except (TypeError, pyarrow.lib.ArrowInvalid):
              # Can also handle nested Python objects, which Arrow cannot.
              self._builder = PandasBlockBuilder()
  
      self._builder.add(item)
  
file_path: ray/python/ray/data/_internal/delegating_block_builder.py
imports: import collections
  from typing import Any, Mapping
  from ray.data._internal.arrow_block import ArrowBlockBuilder
  from ray.data._internal.block_builder import BlockBuilder
  from ray.data._internal.pandas_block import PandasBlockBuilder
  from ray.data.block import Block, BlockAccessor, DataBatch
label_desc: Use image node_id 2 for calling the DelegatingBlockBuilder obj's underlying member method code with example usage: obj.add(item) without return types