class_docstr: A task scheduler for subpipeline.
code: def _get_pipeline_view(self) -> Optional[pstate.PipelineView]:
      try:
          return pstate.PipelineView.load(
              self.mlmd_handle,
              self._pipeline_uid.pipeline_id,
              pipeline_run_id=self._pipeline_run_id,
          )
      except status_lib.StatusNotOkError as e:
          logging.exception(
              "Unable to load run %s for %s, probably new run. %s",
              self._pipeline_run_id,
              self._pipeline_uid.pipeline_id,
              e,
          )
          return None
  
imports: import copy
  import threading
  from typing import Callable, Optional
  from absl import flags
  from absl import logging
  from tfx.orchestration import metadata
  from tfx.orchestration.experimental.core import pipeline_ops
  from tfx.orchestration.experimental.core import pipeline_state
  from tfx.orchestration.experimental.core import task
  from tfx.orchestration.experimental.core import task_scheduler
  from tfx.orchestration.portable.mlmd import context_lib
  from tfx.orchestration.portable.mlmd import execution_lib
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import status
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 2 for calling the SubPipelineTaskScheduler obj's underlying member method code with example usage: obj._get_pipeline_view() and returns: pstate, None