class_docstr: A component that binds a DataView to ExamplesArtifact.
  
  It takes as inputs a channel of Examples and a channel of DataView, and
  binds the DataView (i.e. attaching information from the DataView as custom
  properties) to the Examples in the input channel, producing new Examples
  Artifacts that are identical to the input Examples (including the uris),
  except for the additional information attached.
  
  Example:
  ```
    # We assume Examples are imported by ExampleGen
    example_gen = ...
    # First, create a dataview:
    data_view_provider = TfGraphDataViewProvider(
        module_file=module_file,
        create_decoder_func='create_decoder')
    # Then, bind the DataView to Examples:
    data_view_binder = DataViewBinder(
        input_examples=example_gen.outputs['examples'],
        data_view=data_view_provider.outputs['data_view'],
        )
    # Downstream component can then consume the output of the DataViewBinder:
    stats_gen = StatisticsGen(
        examples=data_view_binder.outputs['output_examples'], ...)
  ```
class_docstr_tok: ["A","component","that","binds","a","DataView","to","ExamplesArtifact",".","It","takes","as","inputs","a","channel","of","Examples","and","a","channel","of","DataView",",","and","binds","the","DataView","(","i.e",".","attaching","information","from","the","DataView","as","custom","properties",")","to","the","Examples","in","the","input","channel",",","producing","new","Examples","Artifacts","that","are","identical","to","the","input","Examples","(","including","the","uris",")",",","except","for","the","additional","information","attached",".","Example",":","``","`","#","We","assume","Examples","are","imported","by","ExampleGen","example_gen","=","...","#","First",",","create","a","dataview",":","data_view_provider","=","TfGraphDataViewProvider","(","module_file=module_file",",","create_decoder_func='create_decoder","'",")","#","Then",",","bind","the","DataView","to","Examples",":","data_view_binder","=","DataViewBinder","(","input_examples=example_gen.outputs","[","'examples","'","]",",","data_view=data_view_provider.outputs","[","'data_view","'","]",",",")","#","Downstream","component","can","then","consume","the","output","of","the","DataViewBinder",":","stats_gen","=","StatisticsGen","(","examples=data_view_binder.outputs","[","'output_examples","'","]",",","...",")","``","`"]
code: def __init__(
      self,
      input_examples: types.BaseChannel,
      data_view: types.BaseChannel,
      output_examples: Optional[types.Channel] = None,
  ):
      if not output_examples:
          output_examples = types.Channel(
              type=standard_artifacts.Examples
          )
  
      spec = _DataViewBinderComponentSpec(
          input_examples=input_examples,
          data_view=data_view,
          output_examples=output_examples,
      )
      super().__init__(spec=spec)
  
file_path: tfx/tfx/components/experimental/data_view/binder_component.py
imports: from typing import Optional
  from tfx import types
  from tfx.components.experimental.data_view import binder_executor
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import executor_spec
  from tfx.types import standard_artifacts
  from tfx.types.component_spec import ChannelParameter
  from tfx.types.component_spec import ComponentSpec
label_desc: Use image node_id 1 to create a new DataViewBinder object from inherited base classes: base_component with example: obj = DataViewBinder(input_examples, data_view, output_examples)