code: def BuildAnalysisTable(  # pylint: disable=invalid-name
      examples: beam.pvalue.PCollection,
      eval_shared_model: types.EvalSharedModel,
      slice_spec: Optional[List[slicer.SingleSliceSpec]] = None,
      desired_batch_size: Optional[int] = None,
      extractors: Optional[List[extractor.Extractor]] = None,
      evaluators: Optional[List[evaluator.Evaluator]] = None,
  ) -> beam.pvalue.PCollection:
      """Builds an analysis table from data extracted from the input.
  
      Use this function to build an example-oriented PCollection of output data
      useful for debugging models.
  
      Args:
        examples: PCollection of input examples. Can be any format the model accepts
          (e.g. string containing CSV row, TensorFlow.Example, etc).
        eval_shared_model: Shared model parameters for EvalSavedModel.
        slice_spec: Optional list of SingleSliceSpec specifying the slices to slice
          the data into. If None, defaults to the overall slice.
        desired_batch_size: Optional batch size for batching in Predict and
          Aggregate.
        extractors: Optional list of Extractors to execute prior to slicing and
          aggregating the metrics. If not provided, a default set will be run.
        evaluators: Optional list of Evaluators for evaluating Extracts. If not
          provided a default set will be used..
  
      Returns:
        beam.pvalue.PCollection of Extracts. The caller is responsible for
        committing to file for now.
      """
      if not slice_spec:
          slice_spec = [slicer.SingleSliceSpec()]
  
      if not extractors:
          extractors = [
              legacy_predict_extractor.PredictExtractor(
                  eval_shared_model, desired_batch_size
              ),
              legacy_feature_extractor.FeatureExtractor(),
              slice_key_extractor.SliceKeyExtractor(slice_spec),
          ]
      if not evaluators:
          evaluators = [
              analysis_table_evaluator.AnalysisTableEvaluator()
          ]
  
      # pylint: disable=no-value-for-parameter
      return (
          examples
          | "InputsToExtracts" >> model_eval_lib.InputsToExtracts()
          | model_eval_lib.ExtractAndEvaluate(
              extractors=extractors, evaluators=evaluators
          )
      )
  
file_path: model-analysis/tensorflow_model_analysis/contrib/model_eval_lib.py
imports: from typing import Any, List, Optional
  import apache_beam
  from tensorflow_model_analysis.api import model_eval_lib
  from tensorflow_model_analysis.api import types
  from tensorflow_model_analysis.evaluators import analysis_table_evaluator
  from tensorflow_model_analysis.evaluators import evaluator
  from tensorflow_model_analysis.extractors import extractor
  from tensorflow_model_analysis.extractors import legacy_feature_extractor
  from tensorflow_model_analysis.extractors import legacy_predict_extractor
  from tensorflow_model_analysis.extractors import slice_key_extractor
  from tensorflow_model_analysis.slicer import slicer_lib
label_desc: Use image node_id 1 for calling a global function with example usage: BuildAnalysisTable(examples, eval_shared_model, slice_spec, desired_batch_size, extractors, evaluators) and returns: unknown