class_docstr: Chunks blocks into batches.
docstr: Add a block to the block buffer.
  
  Note empty block is not added to buffer.
  
  Args:
      block: Block to add to the block buffer.
docstr_tok: ["Add","a","block","to","the","block","buffer",".","Note","empty","block","is","not","added","to","buffer",".","Args",":","block",":","Block","to","add","to","the","block","buffer","."]
code: def add(self, block: Block):
      """Add a block to the block buffer.
  
      Note empty block is not added to buffer.
  
      Args:
          block: Block to add to the block buffer.
      """
      if BlockAccessor.for_block(block).num_rows() > 0:
          self._buffer.append(block)
          self._buffer_size += BlockAccessor.for_block(block).num_rows()
  
imports: from typing import Optional
  from ray.data._internal.arrow_block import ArrowBlockAccessor
  from ray.data._internal.arrow_ops import transform_pyarrow
  from ray.data._internal.delegating_block_builder import DelegatingBlockBuilder
  from ray.data.block import Block, BlockAccessor
label_desc: Use image node_id 2 for calling the Batcher obj's underlying member method code with example usage: obj.add(block) without return types