code: def array_bools(
      draw,
      *,
      size=st.shared(
          number_helpers.ints(min_value=1, max_value=4), key="size"
      ),
  ):
      """Draws a list of booleans with a given size.
  
      Parameters
      ----------
      draw
          special function that draws data randomly (but is reproducible) from a given
          data-set (ex. list).
      size
          size of the list.
  
      Returns
      -------
      ret
          A strategy that draws a list.
  
      Examples
      --------
      >>> array_bools(size=5)
      [False, True, False, False, False]
  
      >>> array_bools(size=5)
      [False, False, False, False, False]
  
      >>> array_bools(size=5)
      [True, False, False, False, False]
  
      >>> array_bools(size=1)
      [True]
  
      >>> array_bools(size=1)
      [False]
  
      >>> array_bools(size=1)
      [True]
  
      >>> array_bools()
      [False, False, False, False]
  
      >>> array_bools()
      [True, True, True, False]
  
      >>> array_bools()
      [True]
      """
      if not isinstance(size, int):
          size = draw(size)
      return draw(st.lists(st.booleans(), min_size=size, max_size=size))
  
imports: import numpy
  import hypothesis.extra.numpy
  from hypothesis import strategies
  from hypothesis.internal.floats import float_of
  from functools import reduce
  from operator import mul
  import sys
  import string
  import ml_dtypes
  import ivy_tests.test_ivy.helpers.globals
  from ..pipeline_helper import WithBackendContext
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers.hypothesis_helpers.dtype_helpers import get_dtypes
  from .None import general_helpers
  from .None import dtype_helpers, number_helpers
  from ..globals import mod_backend
label_desc: Use image node_id 1 for calling a global function with example usage: array_bools(draw) and returns: draw