class_docstr: A BaseChannel that refers to the resolver function's output.
  
  For example:
  
      trainer_inputs = trainer_resolver_function(
          examples=example_gen.outputs['examples'])
  
      trainer = Trainer(examples=trainer_inputs['examples'])
  
  then the `trainer_inputs['examples']` is a ResolvedChannel instance.
class_docstr_tok: ["A","BaseChannel","that","refers","to","the","resolver","function","'s","output",".","For","example",":","trainer_inputs","=","trainer_resolver_function","(","examples=example_gen.outputs","[","'examples","'","]",")","trainer","=","Trainer","(","examples=trainer_inputs","[","'examples","'","]",")","then","the","`","trainer_inputs","[","'examples","'","]","`","is","a","ResolvedChannel","instance","."]
code: def __repr__(self) -> str:
      debug_str = str(self._output_node)
      if self._for_each_context is not None:
          debug_str = f"ForEach({debug_str})"
      if self._output_key is not None:
          debug_str += f'["{self._output_key}"]'
      return f"ResolvedChannel(artifact_type={self.type_name}, {debug_str})"
  
file_path: tfx/tfx/types/resolved_channel.py
imports: import dataclasses
  from typing import Any, Optional, Type, Set, Sequence, Mapping
  from tfx.dsl.control_flow import for_each_internal
  from tfx.dsl.input_resolution import resolver_op
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.utils import doc_controls
  from tfx.utils import typing_utils
label_desc: Use image node_id 7 for calling the ResolvedChannel obj's underlying member method code with example usage: obj.__repr__() and returns: str, self, str, debug_str, str