class_docstr: A list of blocks that may be computed or pending computation.
  
  In the basic version of BlockList, all blocks are known ahead of time. In
  LazyBlockList, blocks are not yet computed, so the number of blocks may
  change after execution due to block splitting.
class_docstr_tok: ["A","list","of","blocks","that","may","be","computed","or","pending","computation",".","In","the","basic","version","of","BlockList",",","all","blocks","are","known","ahead","of","time",".","In","LazyBlockList",",","blocks","are","not","yet","computed",",","so","the","number","of","blocks","may","change","after","execution","due","to","block","splitting","."]
docstr: Bulk version of iter_blocks().
  
  Prefer calling this instead of the iter form for performance if you
  don't need lazy evaluation.
docstr_tok: ["Bulk","version","of","iter_blocks","(",")",".","Prefer","calling","this","instead","of","the","iter","form","for","performance","if","you","do","n't","need","lazy","evaluation","."]
code: def get_blocks(self) -> List[ObjectRef[Block]]:
      """Bulk version of iter_blocks().
  
      Prefer calling this instead of the iter form for performance if you
      don't need lazy evaluation.
      """
      # Overriden in LazyBlockList for bulk evaluation.
      return list(self.iter_blocks())
  
imports: import math
  from typing import Iterator, List, Optional, Tuple
  import numpy
  from ray.data._internal.memory_tracing import trace_allocation
  from ray.data.block import Block, BlockMetadata
  from ray.types import ObjectRef
label_desc: Use image node_id 13 for calling the BlockList obj's underlying member method code with example usage: obj.get_blocks() and returns: list