code: def _block_dispatcher(arrays):
      # Use type(...) is list to match the behavior of np.block(), which special
      # cases list specifically rather than allowing for generic iterables or
      # tuple. Also, we know that list.__array_function__ will never exist.
      if type(arrays) is list:
          for subarrays in arrays:
              for subarray in _block_dispatcher(subarrays):
                  yield subarray
      else:
          yield arrays
  
imports: from __future__ import division, absolute_import, print_function
  import functools
  import operator
  import types
  import warnings
  from .None import numeric
  from .None import overrides
  from .numeric import array, asanyarray, newaxis
  from .multiarray import normalize_axis_index
label_desc: Use image node_id 21 for calling a global function with example usage: _block_dispatcher(arrays) without return types