class_docstr: Metric Callback that calculates metric results for the main scoring metric.
  Adds the results into the trial repository.
  
  .. seealso::
      :class:`MetricCallback`,
code: def __init__(
      self,
      metric_function: Callable[
          [ARG_Y_EXPECTED, ARG_Y_PREDICTD, OPTIONAL_ARG_CONTEXT],
          RETURNS_SCORE,
      ],
      name="main",
      higher_score_is_better: bool = True,
      log_metrics: bool = True,
      pass_context_to_metric_function: bool = False,
  ):
      MetricCallback.__init__(
          self,
          name=name,
          metric_function=metric_function,
          higher_score_is_better=higher_score_is_better,
          log_metrics=log_metrics,
          pass_context_to_metric_function=pass_context_to_metric_function,
      )
      warn_deprecated_class(self, MetricCallback)
  
imports: from abc import ABC, abstractmethod
  from typing import Callable, List, Optional
  from neuraxle.base import ExecutionContext
  from neuraxle.data_container import ARG_Y_EXPECTED, ARG_Y_PREDICTD, EvalEOTDACT
  from neuraxle.logging.warnings import warn_deprecated_class
  from neuraxle.metaopt.data.aggregates import MetricResults, TrialSplit
label_desc: Use image node_id 1 to create a new ScoringCallback object from inherited base classes: MetricCallback with example: obj = ScoringCallback(metric_function, name, higher_score_is_better, log_metrics, pass_context_to_metric_function)