class_docstr: Metaclass that determines which callbacks should be inherited by an Experiment in order to
  complete its functionality
docstr: Create a new class object that stores necessary class-wide callbacks to
  :attr:`__class_wide_bases`
docstr_tok: ["Create","a","new","class","object","that","stores","necessary","class-wide","callbacks","to",":","attr",":","`","__class_wide_bases","`"]
code: def __new__(mcs, name, bases, namespace, **kwargs):
      """Create a new class object that stores necessary class-wide callbacks to
      :attr:`__class_wide_bases`"""
      class_obj = super().__new__(mcs, name, bases, namespace)
  
      # Add cross-validation-related bases to inheritance tree
      namespace["__class_wide_bases"].append(WranglerInputTrain)
      namespace["__class_wide_bases"].append(WranglerTargetTrain)
  
      if name != "NoValidationExperiment":
          namespace["__class_wide_bases"].append(WranglerInputOOF)
          namespace["__class_wide_bases"].append(WranglerTargetOOF)
          namespace["__class_wide_bases"].append(PredictorOOF)
          namespace["__class_wide_bases"].append(EvaluatorOOF)
  
      # Add Class-Wide Aggregator Bases
      namespace["__class_wide_bases"].append(AggregatorEvaluations)
      namespace["__class_wide_bases"].append(AggregatorTimes)
  
      # Add Class-Wide Logger Bases
      namespace["__class_wide_bases"].append(LoggerFitStatus)
  
      return class_obj
  
file_path: hyperparameter_hunter/hyperparameter_hunter/experiment_core.py
imports: from hyperparameter_hunter.callbacks.aggregators import AggregatorEvaluations, AggregatorTimes
  from hyperparameter_hunter.callbacks.bases import BaseCallback, BaseInputWranglerCallback, BaseTargetWranglerCallback, BasePredictorCallback, BaseWranglerCallback, BaseEvaluatorCallback, BaseAggregatorCallback, BaseLoggerCallback
  from hyperparameter_hunter.callbacks.evaluators import EvaluatorOOF, EvaluatorHoldout
  from hyperparameter_hunter.callbacks.loggers import LoggerFitStatus
  from hyperparameter_hunter.callbacks.wranglers.input_wranglers import WranglerInputTrain, WranglerInputOOF, WranglerInputHoldout, WranglerInputTest
  from hyperparameter_hunter.callbacks.wranglers.predictors import PredictorOOF, PredictorHoldout, PredictorTest
  from hyperparameter_hunter.callbacks.wranglers.target_wranglers import WranglerTargetTrain, WranglerTargetOOF, WranglerTargetHoldout
  from hyperparameter_hunter.settings import G
  from inspect import currentframe, getframeinfo
  from os.path import abspath
label_desc: Use image node_id 2 for calling the ExperimentMeta obj's underlying member method code with example usage: obj.__new__(mcs, name, bases, namespace) and returns: class_obj