class_docstr: A :class:`Reporter` subclass to print and store a formatted table of
  the results.
docstr: Initialise the table reporter with domain and metrics.
  
  Args:
      domain: A :class:`Domain` from which all evaluated samples are drawn.
      metrics: :obj:`List[str]` with names of the metrics used during evaluation.
      primary_metric: (optional) :obj:`str` primary metric from `metrics`.
          This is used to determine the best sample. Defaults to the first one.
      database_path: (optional) :obj:`str` path to the database for
          storing experiment history on disk. Defaults to in-memory storage.
docstr_tok: ["Initialise","the","table","reporter","with","domain","and","metrics",".","Args",":","domain",":","A",":","class",":","`","Domain","`","from","which","all","evaluated","samples","are","drawn",".","metrics",":",":","obj",":","`","List","[","str","]","`","with","names","of","the","metrics","used","during","evaluation",".","primary_metric",":","(","optional",")",":","obj",":","`","str","`","primary","metric","from","`","metrics","`",".","This","is","used","to","determine","the","best","sample",".","Defaults","to","the","first","one",".","database_path",":","(","optional",")",":","obj",":","`","str","`","path","to","the","database","for","storing","experiment","history","on","disk",".","Defaults","to","in-memory","storage","."]
code: def __init__(
      self,
      domain: Domain,
      metrics: List[str],
      primary_metric: str = "",
      database_path: str = None,
  ):
      """Initialise the table reporter with domain and metrics.
  
      Args:
          domain: A :class:`Domain` from which all evaluated samples are drawn.
          metrics: :obj:`List[str]` with names of the metrics used during evaluation.
          primary_metric: (optional) :obj:`str` primary metric from `metrics`.
              This is used to determine the best sample. Defaults to the first one.
          database_path: (optional) :obj:`str` path to the database for
              storing experiment history on disk. Defaults to in-memory storage.
      """
      super(Table, self).__init__(
          domain, metrics, primary_metric, database_path
      )
      self._table = bt.BeautifulTable()
      self._table.set_style(bt.STYLE_SEPARATED)
      dim_names = [".".join(dns) for dns in self.domain.flatten()]
      self._table.column_headers = ["No.", *dim_names, *self.metrics]
  
file_path: hypertunity/hypertunity/reports/table.py
imports: from typing import Any, List, Union
  import beautifultable
  import numpy
  import tinydb
  from hypertunity import utils
  from hypertunity.domain import Domain
  from hypertunity.optimisation.base import HistoryPoint
  from .base import Reporter
label_desc: Use image node_id 1 to create a new Table object from inherited base classes: Reporter with example: obj = Table(domain, metrics, primary_metric, database_path)