class_docstr: Custom driver for ExampleGen.
class_docstr_tok: ["Custom","driver","for","ExampleGen","."]
docstr: Overrides BaseDriver.resolve_exec_properties().
docstr_tok: ["Overrides","BaseDriver.resolve_exec_properties","(",")","."]
code: def resolve_exec_properties(
      self,
      exec_properties: Dict[str, Any],
      pipeline_info: data_types.PipelineInfo,
      component_info: data_types.ComponentInfo,
  ) -> Dict[str, Any]:
      """Overrides BaseDriver.resolve_exec_properties()."""
      del pipeline_info, component_info
  
      input_config = example_gen_pb2.Input()
      proto_utils.json_to_proto(
          exec_properties[standard_component_specs.INPUT_CONFIG_KEY],
          input_config,
      )
  
      input_base = exec_properties.get(
          standard_component_specs.INPUT_BASE_KEY
      )
      logging.debug("Processing input %s.", input_base)
  
      range_config = None
      range_config_entry = exec_properties.get(
          standard_component_specs.RANGE_CONFIG_KEY
      )
      if range_config_entry:
          range_config = range_config_pb2.RangeConfig()
          proto_utils.json_to_proto(range_config_entry, range_config)
  
      processor = self.get_input_processor(
          splits=input_config.splits,
          range_config=range_config,
          input_base_uri=input_base,
      )
  
      span, version = processor.resolve_span_and_version()
      fingerprint = processor.get_input_fingerprint(span, version)
  
      # Updates the input_config.splits.pattern.
      for split in input_config.splits:
          split.pattern = processor.get_pattern_for_span_version(
              split.pattern, span, version
          )
  
      exec_properties[
          standard_component_specs.INPUT_CONFIG_KEY
      ] = proto_utils.proto_to_json(input_config)
      exec_properties[utils.SPAN_PROPERTY_NAME] = span
      exec_properties[utils.VERSION_PROPERTY_NAME] = version
      exec_properties[utils.FINGERPRINT_PROPERTY_NAME] = fingerprint
  
      return exec_properties
  
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 3 for calling the Driver obj's underlying member method code with example usage: obj.resolve_exec_properties(exec_properties, pipeline_info, component_info) and returns: exec_properties