code: def note_details(self, data):
      self.__data_cache[data.buffer] = data.as_result()
      runtime = max(data.finish_time - data.start_time, 0.0)
      self.all_runtimes.append(runtime)
      self.all_drawtimes.extend(data.draw_times)
      self.status_runtimes.setdefault(data.status, []).append(runtime)
      for event in set(map(self.event_to_string, data.events)):
          self.event_call_counts[event] += 1
  
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 14 for calling the ConjectureRunner obj's underlying member method code with example usage: obj.note_details(data) without return types