code: def filter(self, condition):
      if condition is math.isfinite:
          return self
      if condition in [math.isinf, math.isnan]:
          return nothing()
      kwargs, pred = get_integer_predicate_bounds(condition)
  
      start, end = self.start, self.end
      if "min_value" in kwargs:
          start = max(
              kwargs["min_value"], -math.inf if start is None else start
          )
      if "max_value" in kwargs:
          end = min(
              kwargs["max_value"], math.inf if end is None else end
          )
  
      if start != self.start or end != self.end:
          if start is not None and end is not None and start > end:
              return nothing()
          self = type(self)(start, end)
      if pred is None:
          return self
      return super().filter(pred)
  
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 4 for calling the IntegersStrategy obj's underlying member method code with example usage: obj.filter(condition) and returns: super, self, nothing, self, nothing