code: def _set_node_outputs(
      node: pipeline_pb2.PipelineNode,
      tfx_node_outputs: Dict[str, types.Channel],
  ):
      """Compiles the outputs of a pipeline node."""
      for key, value in tfx_node_outputs.items():
          node.outputs.outputs[key].CopyFrom(
              compiler_utils.output_spec_from_channel(
                  channel=value, node_id=node.node_info.id
              )
          )
  
imports: import itertools
  from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Type, cast
  from tfx import types
  from tfx.dsl.compiler import compiler_context
  from tfx.dsl.compiler import compiler_utils
  from tfx.dsl.compiler import constants
  from tfx.dsl.compiler import node_inputs_compiler
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_driver
  from tfx.dsl.components.base import base_node
  from tfx.dsl.experimental.node_execution_options import utils
  from tfx.dsl.placeholder import placeholder
  from tfx.orchestration import data_types
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import pipeline
  from tfx.proto.orchestration import executable_spec_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.utils import deprecation_utils
  from tfx.utils import name_utils
label_desc: Use image node_id 4 for calling a global function with example usage: _set_node_outputs(node, tfx_node_outputs) without return types