code: def _block_setup(arrays):
      """
      Returns
      (`arrays`, list_ndim, result_ndim, final_size)
      """
      bottom_index, arr_ndim, final_size = _block_check_depths_match(
          arrays
      )
      list_ndim = len(bottom_index)
      if bottom_index and bottom_index[-1] is None:
          raise ValueError(
              "List at {} cannot be empty".format(
                  _block_format_index(bottom_index)
              )
          )
      result_ndim = max(arr_ndim, list_ndim)
      return arrays, list_ndim, result_ndim, final_size
  
file_path: mars/mars/tensor/merge/block.py
imports: import functools
  import itertools
  import operator
  import numpy
  from ..datasource.empty import empty
  from ..datasource.array import array
label_desc: Use image node_id 9 for calling a global function with example usage: _block_setup(arrays) and returns: arrays,  list_ndim,  result_ndim,  final_size