class_docstr: Responsible for launching driver, executor and publisher of component.
docstr: Prepare inputs, outputs and execution properties for actual execution.
docstr_tok: ["Prepare","inputs",",","outputs","and","execution","properties","for","actual","execution","."]
code: def _run_driver(
      self,
      input_dict: Dict[str, types.Channel],
      output_dict: Dict[str, types.Channel],
      exec_properties: Dict[str, Any],
  ) -> data_types.ExecutionDecision:
      """Prepare inputs, outputs and execution properties for actual execution."""
  
      with self._metadata_connection as m:
          driver = self._driver_class(metadata_handle=m)
  
          execution_decision = driver.pre_execution(
              input_dict=input_dict,
              output_dict=output_dict,
              exec_properties=exec_properties,
              driver_args=self._driver_args,
              pipeline_info=self._pipeline_info,
              component_info=self._component_info,
          )
  
          return execution_decision
  
imports: import abc
  import copy
  from typing import Any, Dict, List, Optional, cast
  import absl
  from tfx import types
  from tfx.dsl.components.base import base_node
  from tfx.dsl.components.base import executor_spec
  from tfx.dsl.components.common import resolver
  from tfx.orchestration import data_types
  from tfx.orchestration import metadata
  from tfx.orchestration import publisher
  from tfx.orchestration.config import base_component_config
  from tfx.orchestration.portable import data_types
label_desc: Use image node_id 4 for calling the BaseComponentLauncher obj's underlying member method code with example usage: obj._run_driver(input_dict, output_dict, exec_properties) and returns: execution_decision