code: def migrate_executor_output_dir_from_stateful_working_directory(
      execution_info: data_types.ExecutionInfo,
      files: collections.abc.Sequence[str],
  ):
      """Copies files from stateful working dir to executor output dir.
  
      Will not overwrite any files already existing in the executor output dir.
  
      Args:
        execution_info: Information for the execution that should have its files
          migrated.
        files: The relative file paths to be migrated.
      """
      executor_output_dir = get_executor_output_dir(execution_info)
      stateful_working_dir = execution_info.stateful_working_dir
      found_paths = []
      for file in files:
          stateful_working_file = os.path.join(
              stateful_working_dir, file
          )
          executor_output_file = os.path.join(executor_output_dir, file)
  
          if fileio.exists(stateful_working_file) and not fileio.exists(
              executor_output_file
          ):
              # We may need to make the parent directories for the executor output dir.
              executor_output_file_dir = os.path.dirname(
                  executor_output_file
              )
              if not fileio.exists(executor_output_file_dir):
                  fileio.makedirs(executor_output_file_dir)
              found_paths.append(stateful_working_file)
              fileio.copy(stateful_working_file, executor_output_file)
  
      if found_paths:
          logging.info(
              "Executor output dir %s has had the following files migrated to it. %s",
              executor_output_dir,
              found_paths,
          )
  
imports: import collections
  import copy
  import datetime
  import os
  from typing import Any, Dict, List, Mapping, Optional, Sequence, Union
  import uuid
  from absl import logging
  from tfx import types
  from tfx import version
  from tfx.dsl.io import fileio
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import node_proto_view
  from tfx.orchestration.experimental.core import constants
  from tfx.orchestration.portable import data_types
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import artifact
  from tfx.types import artifact_utils
  from tfx.types.value_artifact import ValueArtifact
  from tfx.utils import proto_utils
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 8 for calling a global function with example usage: migrate_executor_output_dir_from_stateful_working_directory(execution_info, files) without return types