class_docstr: Pipeline info from orchestration system.
  
  Attributes:
    pipeline_name: name of the pipeline. We expect this to be unique for
      different pipelines.
    pipeline_root: root directory of the pipeline. We expect this to be unique
      for different pipelines.
    run_id: optional uuid for a single run of the pipeline.
code: def __repr__(self):
      return (
          "PipelineInfo("
          "pipeline_name: %s, "
          "pipeline_root: %s, "
          "run_id: %s)"
      ) % (self.pipeline_name, self.pipeline_root, self.run_id)
  
imports: from typing import Any, Dict, List, Optional, Type, Union
  from tfx import types
  from tfx.dsl.placeholder import placeholder
  from tfx.utils import json_utils
label_desc: Use image node_id 2 for calling the PipelineInfo obj's underlying member method code with example usage: obj.__repr__() and returns: unknown