code: def __init__(
      self, test_function, settings=None, random=None, database_key=None
  ):
      self._test_function = test_function
      self.settings = settings or Settings()
      self.shrinks = 0
      self.call_count = 0
      self.event_call_counts = Counter()
      self.valid_examples = 0
      self.random = random or Random(getrandbits(128))
      self.database_key = database_key
      self.status_runtimes = {}
  
      self.all_drawtimes = []
      self.all_runtimes = []
  
      self.events_to_strings = WeakKeyDictionary()
  
      self.interesting_examples = {}
      # We use call_count because there may be few possible valid_examples.
      self.first_bug_found_at = None
      self.last_bug_found_at = None
  
      self.shrunk_examples = set()
  
      self.health_check_state = None
  
      self.tree = DataTree()
  
      self.best_observed_targets = defaultdict(lambda: NO_SCORE)
      self.best_examples_of_observed_targets = {}
  
      # We keep the pareto front in the example database if we have one. This
      # is only marginally useful at present, but speeds up local development
      # because it means that large targets will be quickly surfaced in your
      # testing.
      if (
          self.database_key is not None
          and self.settings.database is not None
      ):
          self.pareto_front = ParetoFront(self.random)
          self.pareto_front.on_evict(self.on_pareto_evict)
      else:
          self.pareto_front = None
  
      # We want to be able to get the ConjectureData object that results
      # from running a buffer without recalculating, especially during
      # shrinking where we need to know about the structure of the
      # executed test case.
      self.__data_cache = LRUReusedCache(CACHE_SIZE)
  
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 1 to create a new ConjectureRunner object from inherited base classes: object with example: obj = ConjectureRunner(test_function, settings, random, database_key)