class_docstr: Abstract class :class:`Reporter` for result visualisation.
docstr: Create an entry for an optimisation history point in the
  :class:`Reporter`.
  
  Args:
      entry: :class:`HistoryPoint` or :obj:`Tuple[Sample, Dict]`.
          The history point to log. If given as a tuple of :class:`Sample`
          instance and a mapping from metric names to results, the
          variance of the evaluation noise can be supplied by adding
          an entry in the dict with the metric name and the suffix '_var'.
      **kwargs: (optional) :obj:`Any`. Additional arguments for the
          logging implementation in a subclass.
  
  Keyword Args:
      meta: (optional) additional information to be logged in the database
          for this entry.
docstr_tok: ["Create","an","entry","for","an","optimisation","history","point","in","the",":","class",":","`","Reporter","`",".","Args",":","entry",":",":","class",":","`","HistoryPoint","`","or",":","obj",":","`","Tuple","[","Sample",",","Dict","]","`",".","The","history","point","to","log",".","If","given","as","a","tuple","of",":","class",":","`","Sample","`","instance","and","a","mapping","from","metric","names","to","results",",","the","variance","of","the","evaluation","noise","can","be","supplied","by","adding","an","entry","in","the","dict","with","the","metric","name","and","the","suffix","'_var","'",".","*","*","kwargs",":","(","optional",")",":","obj",":","`","Any","`",".","Additional","arguments","for","the","logging","implementation","in","a","subclass",".","Keyword","Args",":","meta",":","(","optional",")","additional","information","to","be","logged","in","the","database","for","this","entry","."]
code: def log(self, entry: HistoryEntryType, **kwargs: Any):
      """Create an entry for an optimisation history point in the
      :class:`Reporter`.
  
      Args:
          entry: :class:`HistoryPoint` or :obj:`Tuple[Sample, Dict]`.
              The history point to log. If given as a tuple of :class:`Sample`
              instance and a mapping from metric names to results, the
              variance of the evaluation noise can be supplied by adding
              an entry in the dict with the metric name and the suffix '_var'.
          **kwargs: (optional) :obj:`Any`. Additional arguments for the
              logging implementation in a subclass.
  
      Keyword Args:
          meta: (optional) additional information to be logged in the database
              for this entry.
      """
      if isinstance(entry, Tuple):
          log_fn = self._log_tuple
      elif isinstance(entry, HistoryPoint):
          self._add_to_db(entry, kwargs.pop("meta", None))
          log_fn = self._log_history_point
      else:
          raise TypeError(
              "The history point can be either a tuple or a "
              "`HistoryPoint` type object."
          )
      log_fn(entry, **kwargs)
  
imports: import abc
  import datetime
  import os
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import tinydb
  from hypertunity.domain import Domain, Sample
  from hypertunity.optimisation.base import EvaluationScore, HistoryPoint
label_desc: Use image node_id 4 for calling the Reporter obj's underlying member method code with example usage: obj.log(entry) without return types