code: def do_draw(self, data):
      # if our element strategy is OneCharStringStrategy, we can skip the
      # ListStrategy draw and jump right to our nice IR string draw.
      # Doing so for user-provided element strategies is not correct in
      # general, as they may define a different distribution than our IR.
      elems = unwrap_strategies(self.element_strategy)
      if isinstance(elems, OneCharStringStrategy):
          return data.draw_string(
              elems.intervals,
              min_size=self.min_size,
              max_size=self.max_size,
          )
      return "".join(super().do_draw(data))
  
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 1 for calling the TextStrategy obj's underlying member method code with example usage: obj.do_draw(data) and returns: str, data