class_docstr: Launcher is the main entrance of nodes in TFleX.
  
  It handles TFX internal details like artifact resolving, execution
  triggering and result publishing.
class_docstr_tok: ["Launcher","is","the","main","entrance","of","nodes","in","TFleX",".","It","handles","TFX","internal","details","like","artifact","resolving",",","execution","triggering","and","result","publishing","."]
docstr: Publishes failed execution to ml metadata.
code: def _publish_failed_execution(
      self,
      execution_id: int,
      contexts: List[metadata_store_pb2.Context],
      executor_output: Optional[
          execution_result_pb2.ExecutorOutput
      ] = None,
  ) -> None:
      """Publishes failed execution to ml metadata."""
      with self._mlmd_connection as m:
          execution_publish_utils.publish_failed_execution(
              metadata_handle=m,
              execution_id=execution_id,
              contexts=contexts,
              executor_output=executor_output,
          )
  
imports: import sys
  from typing import Any, Dict, List, Mapping, Optional, Type, TypeVar
  from absl import logging
  import attr
  import grpc
  import portpicker
  from tfx import types
  from tfx.dsl.compiler import placeholder_utils
  from tfx.dsl.io import fileio
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import metadata
  from tfx.orchestration.portable import base_driver_operator
  from tfx.orchestration.portable import base_executor_operator
  from tfx.orchestration.portable import beam_executor_operator
  from tfx.orchestration.portable import cache_utils
  from tfx.orchestration.portable import data_types
  from tfx.orchestration.portable import docker_executor_operator
  from tfx.orchestration.portable import execution_publish_utils
  from tfx.orchestration.portable import execution_watcher
  from tfx.orchestration.portable import importer_node_handler
  from tfx.orchestration.portable import inputs_utils
  from tfx.orchestration.portable import outputs_utils
  from tfx.orchestration.portable import python_driver_operator
  from tfx.orchestration.portable import python_executor_operator
  from tfx.orchestration.portable import resolver_node_handler
  from tfx.orchestration.portable.input_resolution import exceptions
  from tfx.orchestration.portable.mlmd import context_lib
  from tfx.orchestration.portable.mlmd import execution_lib
  from tfx.proto.orchestration import driver_output_pb2
  from tfx.proto.orchestration import executable_spec_pb2
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import typing_utils
  from google.protobuf import message
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 8 for calling the Launcher obj's underlying member method code with example usage: obj._publish_failed_execution(execution_id, contexts, executor_output) without return types