code: def array_shapes(
      min_dims=1, max_dims=None, min_side=1, max_side=None
  ):
      # type: (int, int, int, int) -> st.SearchStrategy[Shape]
      """Return a strategy for array shapes (tuples of int >= 1)."""
      check_type(integer_types, min_dims, "min_dims")
      check_type(integer_types, min_side, "min_side")
      if min_dims > 32:
          raise InvalidArgument(
              "Got min_dims=%r, but numpy does not support arrays greater than 32 dimensions"
              % min_dims
          )
      if max_dims is None:
          max_dims = min(min_dims + 2, 32)
      check_type(integer_types, max_dims, "max_dims")
      if max_dims > 32:
          raise InvalidArgument(
              "Got max_dims=%r, but numpy does not support arrays greater than 32 dimensions"
              % max_dims
          )
      if max_side is None:
          max_side = min_side + 5
      check_type(integer_types, max_side, "max_side")
      order_check("dims", 0, min_dims, max_dims)
      order_check("side", 0, min_side, max_side)
  
      return st.lists(
          st.integers(min_side, max_side),
          min_size=min_dims,
          max_size=max_dims,
      ).map(tuple)
  
imports: from __future__ import absolute_import, division, print_function
  import math
  import re
  from collections import namedtuple
  import numpy
  import hypothesis.internal.conjecture.utils
  import hypothesis.strategies._internal.core
  from hypothesis import Verbosity, assume
  from hypothesis._settings import note_deprecation
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.compat import PY2, hrange, integer_types, quiet_raise, string_types
  from hypothesis.internal.coverage import check_function
  from hypothesis.internal.reflection import proxies, reserved_means_kwonly_star
  from hypothesis.internal.validation import check_type, check_valid_interval
  from hypothesis.reporting import current_verbosity
  from hypothesis.strategies._internal import SearchStrategy
  from hypothesis.utils.conventions import UniqueIdentifier, not_set
label_desc: Use image node_id 6 for calling a global function with example usage: array_shapes(min_dims, max_dims, min_side, max_side) and returns: st