code: def filter(self, condition):
      if condition in (str.lower, str.title, str.upper):
          warnings.warn(
              f"You applied str.{condition.__name__} as a filter, but this allows "
              f"all nonempty strings!  Did you mean str.is{condition.__name__}?",
              HypothesisWarning,
              stacklevel=2,
          )
      elems = unwrap_strategies(self.element_strategy)
      if (
          condition is str.isidentifier
          and self.max_size >= 1
          and isinstance(elems, OneCharStringStrategy)
      ):
          from hypothesis.strategies import builds, nothing
  
          id_start, id_continue = _identifier_characters()
          if not (elems.intervals & id_start):
              return nothing()
          return builds(
              "{}{}".format,
              OneCharStringStrategy(elems.intervals & id_start),
              TextStrategy(
                  OneCharStringStrategy(elems.intervals & id_continue),
                  min_size=max(0, self.min_size - 1),
                  max_size=self.max_size - 1,
              ),
              # Filter to ensure that NFKC normalization keeps working in future
          ).filter(str.isidentifier)
  
      # We use ListStrategy filter logic for the conditions that *only* imply
      # the string is nonempty.  Here, we increment the min_size but still apply
      # the filter for conditions that imply nonempty *and specific contents*.
      if condition in self._nonempty_and_content_filters:
          assert (
              self.max_size >= 1
          ), "Always-empty is special cased in st.text()"
          self = copy.copy(self)
          self.min_size = max(1, self.min_size)
          return ListStrategy.filter(self, condition)
  
      return super().filter(condition)
  
imports: import copy
  import re
  import warnings
  from functools import lru_cache
  from hypothesis.errors import HypothesisWarning, InvalidArgument
  from hypothesis.internal import charmap
  from hypothesis.internal.intervalsets import IntervalSet
  from hypothesis.strategies._internal.collections import ListStrategy
  from hypothesis.strategies._internal.lazy import unwrap_strategies
  from hypothesis.strategies._internal.strategies import SearchStrategy
label_desc: Use image node_id 3 for calling the TextStrategy obj's underlying member method code with example usage: obj.filter(condition) and returns: super, builds, ListStrategy, nothing