class_docstr: Base class for representing metrics.
  
  The `fetch_trial_data` method is the essential method to override when
  subclassing, which specifies how to retrieve a Metric, for a given trial.
  
  A Metric must return a Data object, which requires (at minimum) the following:
      https://ax.dev/api/_modules/ax/core/data.html#Data.required_columns
  
  Attributes:
      lower_is_better: Flag for metrics which should be minimized.
      properties: Properties specific to a particular metric.
class_docstr_tok: ["Base","class","for","representing","metrics",".","The","`","fetch_trial_data","`","method","is","the","essential","method","to","override","when","subclassing",",","which","specifies","how","to","retrieve","a","Metric",",","for","a","given","trial",".","A","Metric","must","return","a","Data","object",",","which","requires","(","at","minimum",")","the","following",":","https",":","\/\/ax.dev\/api\/_modules\/ax\/core\/data.html","#","Data.required_columns","Attributes",":","lower_is_better",":","Flag","for","metrics","which","should","be","minimized",".","properties",":","Properties","specific","to","a","particular","metric","."]
docstr: Metric class, with which to group this metric in
  `Experiment._metrics_by_class`, which is used to combine metrics on experiment
  into groups and then fetch their data via `Metric.fetch_trial_data_multi` for
  each group.
  
  NOTE: By default, this property will just return the class on which it is
  defined; however, in some cases it is useful to group metrics by their
  superclass, in which case this property should return that superclass.
docstr_tok: ["Metric","class",",","with","which","to","group","this","metric","in","`","Experiment._metrics_by_class","`",",","which","is","used","to","combine","metrics","on","experiment","into","groups","and","then","fetch","their","data","via","`","Metric.fetch_trial_data_multi","`","for","each","group",".","NOTE",":","By","default",",","this","property","will","just","return","the","class","on","which","it","is","defined",";","however",",","in","some","cases","it","is","useful","to","group","metrics","by","their","superclass",",","in","which","case","this","property","should","return","that","superclass","."]
code: def fetch_multi_group_by_metric(self) -> Type[Metric]:
      """Metric class, with which to group this metric in
      `Experiment._metrics_by_class`, which is used to combine metrics on experiment
      into groups and then fetch their data via `Metric.fetch_trial_data_multi` for
      each group.
  
      NOTE: By default, this property will just return the class on which it is
      defined; however, in some cases it is useful to group metrics by their
      superclass, in which case this property should return that superclass.
      """
      return self.__class__
  
imports: from __future__ import annotations
  import traceback
  import warnings
  from dataclasses import dataclass
  from functools import reduce
  from logging import Logger
  from typing import Any, Dict, Iterable, List, Mapping, Optional, Tuple, Type, TYPE_CHECKING
  from ax.core.data import Data
  from ax.utils.common.base import SortableBase
  from ax.utils.common.logger import get_logger
  from ax.utils.common.result import Err, Ok, Result, UnwrapError
  from ax.utils.common.serialization import SerializationMixin
label_desc: Use image node_id 3 for calling the Metric obj's underlying member method code with example usage: obj.fetch_multi_group_by_metric() and returns: self