class_docstr: Definition for TFX Resolver.
  
  Resolver is a special TFX node which handles special artifact resolution
  logics that will be used as inputs for downstream nodes.
  
  To use Resolver, pass the followings to the Resolver constructor:
  
  * Name of the Resolver instance
  * A subclass of ResolverStrategy
  * Configs that will be used to construct an instance of ResolverStrategy
  * Channels to resolve with their tag, in the form of kwargs
  
  Here is an example:
  
  ```
  example_gen = ImportExampleGen(...)
  examples_resolver = Resolver(
        strategy_class=tfx.dsl.experimental.SpanRangeStrategy,
        config={'range_config': range_config},
        examples=Channel(type=Examples, producer_component_id=example_gen.id)
        ).with_id('Resolver.span_resolver')
  trainer = Trainer(
      examples=examples_resolver.outputs['examples'],
      ...)
  ```
  
  You can find experimental `ResolverStrategy` classes under
  `tfx.v1.dsl.experimental` module, including `LatestArtifactStrategy`,
  `LatestBlessedModelStrategy`, `SpanRangeStrategy`, etc.
code: def raw_inputs(self) -> Dict[str, channel_types.BaseChannel]:
      return self._raw_inputs
  
imports: import abc
  from typing import Any, Dict, List, Optional, Type, Mapping
  from tfx import types
  from tfx.dsl.components.base import base_driver
  from tfx.dsl.components.base import base_node
  from tfx.dsl.input_resolution import resolver_op
  from tfx.orchestration import data_types
  from tfx.orchestration import metadata
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.types import resolved_channel
  from tfx.utils import doc_controls
  from tfx.utils import json_utils
  from tfx.utils import typing_utils
  import ml_metadata
label_desc: Use image node_id 2 for calling the Resolver obj's underlying member method code with example usage: obj.raw_inputs() and returns: self