code: def _maybe_add_name_to_config(
      cfg: Dict[str, Any], class_name: str
  ) -> Dict[str, Any]:
      """Adds default name field to metric config if not present."""
      if "name" not in cfg:
          # Use snake_case version of class name as default name.
          intermediate = re.sub(
              "(.)([A-Z][a-z0-9]+)", r"\1_\2", class_name
          )
          cfg["name"] = re.sub(
              "([a-z])([A-Z])", r"\1_\2", intermediate
          ).lower()
      return cfg
  
imports: import collections
  import importlib
  import json
  import re
  from typing import Any, Dict, FrozenSet, Iterable, Iterator, List, NamedTuple, Optional, Tuple, Type, Union
  import tensorflow
  from tensorflow_model_analysis.metrics import aggregation
  from tensorflow_model_analysis.metrics import binary_confusion_matrices
  from tensorflow_model_analysis.metrics import calibration
  from tensorflow_model_analysis.metrics import calibration_plot
  from tensorflow_model_analysis.metrics import confusion_matrix_metrics
  from tensorflow_model_analysis.metrics import confusion_matrix_plot
  from tensorflow_model_analysis.metrics import example_count
  from tensorflow_model_analysis.metrics import metric_types
  from tensorflow_model_analysis.metrics import metric_util
  from tensorflow_model_analysis.metrics import multi_class_confusion_matrix_plot
  from tensorflow_model_analysis.metrics import tf_metric_wrapper
  from tensorflow_model_analysis.metrics import weighted_example_count
  from tensorflow_model_analysis.proto import config_pb2
  from tensorflow_model_analysis.slicer import slicer_lib
  from tensorflow_model_analysis.utils import model_util
  from tensorflow_metadata.proto.v0 import schema_pb2
label_desc: Use image node_id 24 for calling a global function with example usage: _maybe_add_name_to_config(cfg, class_name) and returns: cfg