class_docstr: Custom driver for ExampleGen.
class_docstr_tok: ["Custom","driver","for","ExampleGen","."]
code: def run(
      self, execution_info: portable_data_types.ExecutionInfo
  ) -> driver_output_pb2.DriverOutput:
      # Populate exec_properties
      result = driver_output_pb2.DriverOutput()
      # PipelineInfo and ComponentInfo are not actually used, two fake one are
      # created just to be compatible with the old API.
      pipeline_info = data_types.PipelineInfo("", "")
      component_info = data_types.ComponentInfo("", "", pipeline_info)
      exec_properties = self.resolve_exec_properties(
          execution_info.exec_properties, pipeline_info, component_info
      )
      for k, v in exec_properties.items():
          if v is not None:
              data_types_utils.set_metadata_value(
                  result.exec_properties[k], v
              )
  
      # Populate output_dict
      output_example = copy.deepcopy(
          execution_info.output_dict[
              standard_component_specs.EXAMPLES_KEY
          ][0].mlmd_artifact
      )
      update_output_artifact(exec_properties, output_example)
      result.output_artifacts[
          standard_component_specs.EXAMPLES_KEY
      ].artifacts.append(output_example)
      return result
  
imports: import copy
  import os
  from typing import Any, Dict, List, Iterable, Optional
  from absl import logging
  from tfx import types
  from tfx.components.example_gen import input_processor
  from tfx.components.example_gen import utils
  from tfx.dsl.components.base import base_driver
  from tfx.orchestration import data_types
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import metadata
  from tfx.orchestration.portable import base_driver
  from tfx.orchestration.portable import data_types
  from tfx.proto import example_gen_pb2
  from tfx.proto import range_config_pb2
  from tfx.proto.orchestration import driver_output_pb2
  from tfx.types import standard_component_specs
  from tfx.utils import proto_utils
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 5 for calling the Driver obj's underlying member method code with example usage: obj.run(execution_info) and returns: result