class_docstr: Wrap component as beam DoFn.
class_docstr_tok: ["Wrap","component","as","beam","DoFn","."]
docstr: Executes component based on signals.
  
  Args:
    element: a signal element to trigger the component.
    *signals: side input signals indicate completeness of upstream components.
docstr_tok: ["Executes","component","based","on","signals",".","Args",":","element",":","a","signal","element","to","trigger","the","component",".","*","signals",":","side","input","signals","indicate","completeness","of","upstream","components","."]
code: def process(self, element: Any, *signals: Iterable[Any]) -> None:
      """Executes component based on signals.
  
      Args:
        element: a signal element to trigger the component.
        *signals: side input signals indicate completeness of upstream components.
      """
      for signal in signals:
          assert not list(signal), "Signal PCollection should be empty."
      self._run_component()
  
imports: import datetime
  from typing import Any, Iterable, List, Optional, Type
  import absl
  import apache_beam
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_node
  from tfx.orchestration import data_types
  from tfx.orchestration import metadata
  from tfx.orchestration import pipeline
  from tfx.orchestration import tfx_runner
  from tfx.orchestration.config import base_component_config
  from tfx.orchestration.config import config_utils
  from tfx.orchestration.config import pipeline_config
  from tfx.orchestration.launcher import base_component_launcher
  from tfx.orchestration.launcher import docker_component_launcher
  from tfx.orchestration.launcher import in_process_component_launcher
  from tfx.utils import telemetry_utils
label_desc: Use image node_id 2 for calling the _ComponentAsDoFn obj's underlying member method code with example usage: obj.process(element) without return types