docstr: Initializes a benchmark runner for the `Suite`.
  
  Args:
      suite (Suite) : A class that inherits from `Suite`, with any number
          of instance methods decorated with `@benchmark`.
docstr_tok: ["Initializes","a","benchmark","runner","for","the","`","Suite","`",".","Args",":","suite","(","Suite",")",":","A","class","that","inherits","from","`","Suite","`",",","with","any","number","of","instance","methods","decorated","with","`","@","benchmark","`","."]
code: def __init__(self, suite):
      """Initializes a benchmark runner for the `Suite`.
  
      Args:
          suite (Suite) : A class that inherits from `Suite`, with any number
              of instance methods decorated with `@benchmark`.
      """
      self._suite = suite
      self._benchmarks = []
      self._table = None
      self._WROTE_RESULTS = False
      self._HOSTING = False
  
      self._suite.register_benchmarks()
  
      class_attrs = self._suite.__class__.__dict__.items()
      instance_attrs = self._suite.__dict__.items()
  
      for k, v in class_attrs:
          if (
              hasattr(v, "benchmark")
              and getattr(v, "benchmark") is True
          ):
              logging.debug("Registering {0}".format(k))
              self._benchmarks.append(v)
  
      for k, v in instance_attrs:
          if (
              hasattr(v, "benchmark")
              and getattr(v, "benchmark") is True
          ):
              logging.debug("Registering {0}".format(k))
              self._benchmarks.append(v)
  
      # Write results on SIGINT
      signal.signal(signal.SIGINT, self.sigint_handler)
  
imports: import logging
  import os
  import sys
  import signal
  import subprocess
  import venv
  import tornado
  from timeit import timeit
  from perspective import Table, PerspectiveManager, PerspectiveTornadoHandler
label_desc: Use image node_id 1 to create a new Runner object from inherited base classes: object with example: obj = Runner(suite)