code: def _aggregation_type(
      spec: config_pb2.MetricsSpec,
  ) -> Optional[metric_types.AggregationType]:
      """Returns AggregationType associated with AggregationOptions at offset."""
      if spec.aggregate.micro_average:
          return metric_types.AggregationType(micro_average=True)
      if spec.aggregate.macro_average:
          return metric_types.AggregationType(macro_average=True)
      if spec.aggregate.weighted_macro_average:
          return metric_types.AggregationType(
              weighted_macro_average=True
          )
      return None
  
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 19 for calling a global function with example usage: _aggregation_type(spec) and returns: None, metric_types, metric_types, metric_types