class_docstr: Reads a composable pipeline's info from its proto representation.
class_docstr_tok: ["Reads","a","composable","pipeline","'s","info","from","its","proto","representation","."]
code: def node_info(self) -> pipeline_pb2.NodeInfo:
      # We can create a fake NodeInfo proto for a composable pipeline,
      # when it is viewed as a node, by striping the `_begin`
      # suffix from PipelineBegin node's NodeInfo.
      if not self._node_info:
          self._node_info = pipeline_pb2.NodeInfo()
          self._node_info.type.name = self._strip_begin_node_suffix(
              self._begin_node.node_info.type.name
          )
          self._node_info.id = self._strip_begin_node_suffix(
              self._begin_node.node_info.id
          )
      return self._node_info
  
imports: import abc
  from typing import Sequence, Union
  from tfx.dsl.compiler import constants
  from tfx.proto.orchestration import pipeline_pb2
  from google.protobuf import message
label_desc: Use image node_id 3 for calling the ComposablePipelineProtoView obj's underlying member method code with example usage: obj.node_info() and returns: self