code: def cuml_array_shapes(
      draw, *, min_dims=1, max_dims=2, min_side=1, max_side=None
  ):
      """
      Generates cuml array shapes.
  
      See also: hypothesis.extra.numpy.array_shapes()
  
      Parameters
      ----------
      min_dims: int, default=1
          Returned shapes will have at least this number of dimensions.
      max_dims: int, default=2
          Returned shapes will have at most this number of dimensions.
      min_side: int, default=1
          Returned shapes will have at least this size in any dimension.
      max_side: int | None, default=min_side + 9
          Returned shapes will have at most this size in any dimension.
  
      Returns
      -------
      Shapes for cuml array inputs.
      """
      max_side = min_side + 9 if max_side is None else max_side
  
      if not (1 <= min_dims <= max_dims):
          raise ValueError(
              "Arguments violate condition 1 <= min_dims <= max_dims."
          )
      if not (0 < min_side < max_side):
          raise ValueError(
              "Arguments violate condition 0 < min_side < max_side."
          )
  
      shapes = array_shapes(
          min_dims=min_dims,
          max_dims=max_dims,
          min_side=min_side,
          max_side=max_side,
      )
      just_size = integers(min_side, max_side)
      return draw(one_of(shapes, just_size))
  
imports: from cuml.internals.array import CumlArray
  from cuml.internals.safe_imports import cpu_only_import, gpu_only_import
  from hypothesis import assume
  from hypothesis.extra.numpy import array_shapes, arrays, floating_dtypes, integer_dtypes
  from hypothesis.strategies import composite, integers, just, none, one_of, sampled_from
  from sklearn.datasets import make_classification, make_regression
  from sklearn.model_selection import train_test_split
label_desc: Use image node_id 7 for calling a global function with example usage: cuml_array_shapes(draw) and returns: draw