class_docstr: Wrap node as beam DoFn.
class_docstr_tok: ["Wrap","node","as","beam","DoFn","."]
code: def _run_node(self) -> None:
      platform_config = self._extract_platform_config(
          self._deployment_config, self._node_id
      )
      if self._pipeline_node.execution_options.run.perform_snapshot:
          with metadata.Metadata(
              self._mlmd_connection_config
          ) as mlmd_handle:
              partial_run_utils.snapshot(mlmd_handle, self._pipeline)
      launcher.Launcher(
          pipeline_node=self._pipeline_node,
          mlmd_connection=metadata.Metadata(
              self._mlmd_connection_config
          ),
          pipeline_info=self._pipeline_info,
          pipeline_runtime_spec=self._pipeline_runtime_spec,
          executor_spec=self._executor_spec,
          platform_config=platform_config,
          custom_driver_spec=self._custom_driver_spec,
      ).launch()
  
imports: import datetime
  from typing import Any, Iterable, List, Optional
  from absl import logging
  import apache_beam
  from tfx.dsl.compiler import constants
  from tfx.orchestration import metadata
  from tfx.orchestration.beam.legacy import beam_dag_runner
  from tfx.orchestration.config import pipeline_config
  from tfx.orchestration.local import runner_utils
  from tfx.orchestration.portable import launcher
  from tfx.orchestration.portable import partial_run_utils
  from tfx.orchestration.portable import runtime_parameter_utils
  from tfx.orchestration.portable import tfx_runner
  from tfx.proto.orchestration import local_deployment_config_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import telemetry_utils
  from google.protobuf import any_pb2
  from google.protobuf import message
label_desc: Use image node_id 3 for calling the PipelineNodeAsDoFn obj's underlying member method code with example usage: obj._run_node() without return types