code: def integers(
      min_value: Optional[int] = None,
      max_value: Optional[int] = None,
  ) -> SearchStrategy[int]:
      """Returns a strategy which generates integers.
  
      If min_value is not None then all values will be >= min_value. If
      max_value is not None then all values will be <= max_value
  
      Examples from this strategy will shrink towards zero, and negative values
      will also shrink towards positive (i.e. -n may be replaced by +n).
      """
      check_valid_bound(min_value, "min_value")
      check_valid_bound(max_value, "max_value")
      check_valid_interval(
          min_value, max_value, "min_value", "max_value"
      )
  
      if min_value is not None:
          if min_value != int(min_value):
              raise InvalidArgument(
                  "min_value=%r of type %r cannot be exactly represented as an integer."
                  % (min_value, type(min_value))
              )
          min_value = int(min_value)
      if max_value is not None:
          if max_value != int(max_value):
              raise InvalidArgument(
                  "max_value=%r of type %r cannot be exactly represented as an integer."
                  % (max_value, type(max_value))
              )
          max_value = int(max_value)
  
      return IntegersStrategy(min_value, max_value)
  
imports: import math
  from decimal import Decimal
  from fractions import Fraction
  from typing import Literal, Optional, Union
  from hypothesis.control import reject
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.filtering import get_float_predicate_bounds, get_integer_predicate_bounds
  from hypothesis.internal.floats import SMALLEST_SUBNORMAL, float_of, float_to_int, int_to_float, is_negative, next_down, next_down_normal, next_up, next_up_normal, width_smallest_normals
  from hypothesis.internal.validation import check_type, check_valid_bound, check_valid_interval
  from hypothesis.strategies._internal.misc import nothing
  from hypothesis.strategies._internal.strategies import SampledFromStrategy, SearchStrategy
  from hypothesis.strategies._internal.utils import cacheable, defines_strategy
label_desc: Use image node_id 1 for calling a global function with example usage: integers(min_value, max_value) and returns: IntegersStrategy