code: def eval_model_path(
      output_uri: str, is_old_artifact: bool = False
  ) -> str:
      """Returns final path to exported model for evaluation purpose."""
      model_dir = eval_model_dir(output_uri, is_old_artifact)
      model_file = os.path.join(model_dir, "saved_model.pb")
      if fileio.exists(model_file):
          return model_dir
      elif fileio.exists(model_dir):
          # TODO(b/160795287): Deprecate estimator based executor.
          absl.logging.warning(
              "Support for estimator-based executor and model"
              " export will be deprecated soon. Please use"
              " export structure "
              '<ModelExportPath>/eval_model_dir/saved_model.pb"'
          )
          return io_utils.get_only_uri_in_dir(model_dir)
      else:
          # If eval model doesn't exist, use serving model for eval.
          return serving_model_path(output_uri, is_old_artifact)
  
file_path: tfx/tfx/utils/path_utils.py
imports: import os
  import absl
  from tfx.dsl.io import fileio
  from tfx.types import artifact
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.utils import io_utils
  from tfx.utils import path_constants
label_desc: Use image node_id 3 for calling a global function with example usage: eval_model_path(output_uri, is_old_artifact) and returns: model_dir, io_utils, serving_model_path