code: def load_eval_run(
      output_path: str,
      output_file_format: str = EVAL_CONFIG_FILE_FORMAT,
      filename: Optional[str] = None,
  ) -> Tuple[Optional[config_pb2.EvalConfig], str, str, Dict[str, str]]:
      """Returns eval config, data location, file format, and model locations.
  
      Args:
        output_path: Directory containing config file.
        output_file_format: Format of output file. Currently only 'json' is
          supported.
        filename: Name of output file (including extension if any).
  
      Returns:
        Tuple of (EvalConfig, data location, file format, model locations). If an
        EvalConfig is not found at the given path, None will be returned.
      """
      if filename is None:
          filename = EVAL_CONFIG_FILE + "." + output_file_format
      path = os.path.join(output_path, filename)
      if tf.io.gfile.exists(path):
          with tf.io.gfile.GFile(path, "r") as f:
              pb = json_format.Parse(f.read(), config_pb2.EvalRun())
              _check_version(pb.version, output_path)
              return (
                  pb.eval_config,
                  pb.data_location,
                  pb.file_format,
                  pb.model_locations,
              )
  
      # Legacy suppport (to be removed in future).
      # The previous version did not include file extension.
      path = os.path.splitext(path)[0]
      if tf.io.gfile.exists(path):
          serialized_record = six.next(
              tf.compat.v1.python_io.tf_record_iterator(path)
          )
          final_dict = pickle.loads(serialized_record)
          _check_version(final_dict, output_path)
          old_config = final_dict["eval_config"]
          slicing_specs = None
          if old_config.slice_spec:
              slicing_specs = [
                  s.to_proto() for s in old_config.slice_spec
              ]
          options = config_pb2.Options()
          options.compute_confidence_intervals.value = (
              old_config.compute_confidence_intervals
          )
          options.min_slice_size.value = (
              old_config.k_anonymization_count
          )
          return (
              config_pb2.EvalConfig(
                  slicing_specs=slicing_specs, options=options
              ),
              old_config.data_location,
              "",
              {"": old_config.model_location},
          )
  
      # No config found
      return (None, "", "", {})
  
file_path: model-analysis/tensorflow_model_analysis/writers/eval_config_writer.py
imports: import os
  import pickle
  from typing import Any, Dict, Optional, Tuple
  import apache_beam
  import six
  import tensorflow
  from tensorflow_model_analysis import version
  from tensorflow_model_analysis.evaluators import evaluator
  from tensorflow_model_analysis.proto import config_pb2
  from tensorflow_model_analysis.writers import writer
  from google.protobuf import json_format
label_desc: Use image node_id 3 for calling a global function with example usage: load_eval_run(output_path, output_file_format, filename) and returns: None,  str,  str,  dict, config_pb2,  old_config,  str,  dict, pb,  pb,  pb,  pb