code: def get_or_create_pipeline_state(mlmd_handle, pipeline):
      """Gets or creates pipeline state for the given pipeline."""
      try:
          return pstate.PipelineState.load(
              mlmd_handle, task_lib.PipelineUid.from_pipeline(pipeline)
          )
      except status_lib.StatusNotOkError as e:
          if e.status().code == status_lib.Code.NOT_FOUND:
              return pstate.PipelineState.new(mlmd_handle, pipeline)
          else:
              raise
  
imports: import os
  from typing import Dict, Optional
  import uuid
  from absl.testing.absltest import mock
  from tfx import types
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import metadata
  from tfx.orchestration import node_proto_view
  from tfx.orchestration.experimental.core import env
  from tfx.orchestration.experimental.core import mlmd_state
  from tfx.orchestration.experimental.core import pipeline_state
  from tfx.orchestration.experimental.core import service_jobs
  from tfx.orchestration.experimental.core import task
  from tfx.orchestration import mlmd_connection_manager
  from tfx.orchestration.portable import cache_utils
  from tfx.orchestration.portable import execution_publish_utils
  from tfx.orchestration.portable import outputs_utils
  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.types import standard_artifacts
  from tfx.utils import status
  from tfx.utils import test_case_utils
  from tfx.utils import typing_utils
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 17 for calling a global function with example usage: get_or_create_pipeline_state(mlmd_handle, pipeline) and returns: pstate, pstate