docstr: Run ``self._test_function``, but convert a ``StopTest`` exception
  into a normal return.
code: def __stoppable_test_function(self, data):
      """Run ``self._test_function``, but convert a ``StopTest`` exception
      into a normal return.
      """
      try:
          self._test_function(data)
      except StopTest as e:
          if e.testcounter == data.testcounter:
              # This StopTest has successfully stopped its test, and can now
              # be discarded.
              pass
          else:
              # This StopTest was raised by a different ConjectureData. We
              # need to re-raise it so that it will eventually reach the
              # correct engine.
              raise
  
imports: from __future__ import absolute_import, division, print_function
  from collections import Counter, defaultdict
  from enum import Enum
  from random import Random, getrandbits
  from weakref import WeakKeyDictionary
  import attr
  from hypothesis import HealthCheck, Phase, Verbosity, settings
  from hypothesis._settings import local_settings
  from hypothesis.internal.cache import LRUReusedCache
  from hypothesis.internal.compat import ceil, hbytes, int_from_bytes
  from hypothesis.internal.conjecture.data import ConjectureData, ConjectureResult, DataObserver, Overrun, Status, StopTest
  from hypothesis.internal.conjecture.datatree import DataTree, PreviouslyUnseenBehaviour, TreeRecordingObserver
  from hypothesis.internal.conjecture.junkdrawer import clamp
  from hypothesis.internal.conjecture.pareto import NO_SCORE, ParetoFront, ParetoOptimiser
  from hypothesis.internal.conjecture.shrinker import Shrinker, sort_key
  from hypothesis.internal.healthcheck import fail_health_check
  from hypothesis.reporting import base_report
label_desc: Use image node_id 4 for calling the ConjectureRunner obj's underlying member method code with example usage: obj.__stoppable_test_function(data) without return types