class_docstr: SpanRangeStrategy resolves artifacts based on "span" property.
  
  Note that this ResolverStrategy is experimental and is subject to change in
  terms of both interface and implementation.
  
  Don't construct SpanRangeStrategy directly, example usage:
  ```
    examples_resolver = Resolver(
        strategy_class=SpanRangeStrategy,
        config={'range_config': range_config},
        examples=Channel(type=Examples, producer_component_id=example_gen.id),
    ).with_id('span_resolver')
    examples_resolver.outputs['examples']
  ```
class_docstr_tok: ["SpanRangeStrategy","resolves","artifacts","based","on","``","span","''","property",".","Note","that","this","ResolverStrategy","is","experimental","and","is","subject","to","change","in","terms","of","both","interface","and","implementation",".","Do","n't","construct","SpanRangeStrategy","directly",",","example","usage",":","``","`","examples_resolver","=","Resolver","(","strategy_class=SpanRangeStrategy",",","config=","{","'range_config","'",":","range_config","}",",","examples=Channel","(","type=Examples",",","producer_component_id=example_gen.id",")",",",")",".with_id","(","'span_resolver","'",")","examples_resolver.outputs","[","'examples","'","]","``","`"]
code: def __init__(self, range_config: Any):
      # Import range_config locally, as SpanRangeStrategy is included in
      # ml-pipelines-sdk package while tfx.proto is not.
      from tfx.proto import (
          range_config_pb2,
      )  # pylint: disable=g-import-not-at-top
  
      self._range_config: range_config_pb2.RangeConfig = range_config
  
file_path: tfx/tfx/dsl/input_resolution/strategies/span_range_strategy.py
imports: from typing import Dict, List, Optional, Any
  from tfx import types
  from tfx.dsl.components.common import resolver
  from tfx.utils import doc_controls
  import ml_metadata
label_desc: Use image node_id 1 to create a new SpanRangeStrategy object from inherited base classes: resolver with example: obj = SpanRangeStrategy(range_config)