code: def get_shape(
      draw,
      *,
      allow_none=False,
      min_num_dims=0,
      max_num_dims=5,
      min_dim_size=1,
      max_dim_size=10,
  ):
      """Draws a tuple of integers drawn randomly from [min_dim_size,
      max_dim_size] of size drawn from min_num_dims to max_num_dims. Useful for
      randomly drawing the shape of an array.
  
      Parameters
      ----------
      draw
          special function that draws data randomly (but is reproducible) from a given
          data-set (ex. list).
      allow_none
          if True, allow for the result to be None.
      min_num_dims
          minimum size of the tuple.
      max_num_dims
          maximum size of the tuple.
      min_dim_size
          minimum value of each integer in the tuple.
      max_dim_size
          maximum value of each integer in the tuple.
  
      Returns
      -------
          A strategy that draws a tuple.
      """
      if allow_none:
          shape = draw(
              st.none()
              | st.lists(
                  number_helpers.ints(
                      min_value=min_dim_size, max_value=max_dim_size
                  ),
                  min_size=min_num_dims,
                  max_size=max_num_dims,
              )
          )
      else:
          shape = draw(
              st.lists(
                  number_helpers.ints(
                      min_value=min_dim_size, max_value=max_dim_size
                  ),
                  min_size=min_num_dims,
                  max_size=max_num_dims,
              )
          )
      if shape is None:
          return shape
      return tuple(shape)
  
imports: from hypothesis import assume, strategies
  from typing import Tuple
  from functools import lru_cache
  import math
  import numpy
  import ivy
  from .None import array_helpers, number_helpers, dtype_helpers
  from ..pipeline_helper import WithBackendContext
  from ivy.functional.ivy.layers import _deconv_length
  from ..globals import mod_backend
label_desc: Use image node_id 9 for calling a global function with example usage: get_shape(draw) and returns: tuple, shape