code: def check_matching_blocks(*arrays):
      """Check that the partitioning structure for many arrays matches.
  
      Parameters
      ----------
      *arrays : Sequence of array-likes
          This includes
  
          * Dask Array
          * Dask DataFrame
          * Dask Series
      """
      if len(arrays) <= 1:
          return
      if all(isinstance(x, da.Array) for x in arrays):
          # TODO: unknown chunks, ensure blocks match, or just raise (configurable)
          chunks = arrays[0].chunks
          for array in arrays[1:]:
              if array.chunks != chunks:
                  raise ValueError(
                      "Mismatched chunks. {} != {}".format(
                          chunks, array.chunks
                      )
                  )
  
      elif all(
          isinstance(x, (dd.Series, dd.DataFrame)) for x in arrays
      ):
          divisions = arrays[0].divisions
          for array in arrays[1:]:
              if array.divisions != divisions:
                  raise ValueError(
                      "Mismatched divisions. {} != {}".format(
                          divisions, array.divisions
                      )
                  )
      else:
          raise ValueError(
              "Unexpected types {}.".format({type(x) for x in arrays})
          )
  
imports: import contextlib
  import datetime
  import functools
  import logging
  import warnings
  from collections.abc import Sequence
  from multiprocessing import cpu_count
  from numbers import Integral
  from timeit import default_timer
  import dask
  import dask.array
  import dask.dataframe
  import numpy
  import pandas
  import sklearn.utils.extmath
  import sklearn.utils.validation
  from dask import delayed
  from dask.array.utils import assert_eq
  from dask.dataframe.utils import assert_eq
  from ._utils import ConstantFunction
label_desc: Use image node_id 11 for calling a global function with example usage: check_matching_blocks() without return types