class_docstr: An executor that executes SageMaker Pipelines locally.
class_docstr_tok: ["An","executor","that","executes","SageMaker","Pipelines","locally","."]
docstr: Evaluate pipeline variable runtime value.
docstr_tok: ["Evaluate","pipeline","variable","runtime","value","."]
code: def evaluate_pipeline_variable(self, pipeline_variable, step_name):
      """Evaluate pipeline variable runtime value."""
      value = None
      if isinstance(pipeline_variable, PRIMITIVES):
          value = pipeline_variable
      elif isinstance(pipeline_variable, Parameter):
          value = self.execution.pipeline_parameters.get(
              pipeline_variable.name
          )
      elif isinstance(pipeline_variable, Join):
          value = self._evaluate_join_function(
              pipeline_variable, step_name
          )
      elif isinstance(pipeline_variable, Properties):
          value = self._evaluate_property_reference(
              pipeline_variable, step_name
          )
      elif isinstance(pipeline_variable, ExecutionVariable):
          value = self._evaluate_execution_variable(pipeline_variable)
      elif isinstance(pipeline_variable, JsonGet):
          value = self._evaluate_json_get_function(
              pipeline_variable, step_name
          )
      elif isinstance(pipeline_variable, DelayedReturn):
          # DelayedReturn showing up in arguments, meaning that it's data referenced
          # We should convert it to JsonGet and evaluate the JsonGet object
          value = self._evaluate_json_get_function(
              pipeline_variable._to_json_get(), step_name
          )
      else:
          self.execution.update_step_failure(
              step_name,
              f"Unrecognized pipeline variable {pipeline_variable.expr}.",
          )
  
      if value is None:
          self.execution.update_step_failure(
              step_name, f"{pipeline_variable.expr} is undefined."
          )
      return value
  
imports: from __future__ import absolute_import
  from abc import ABC, abstractmethod
  import json
  from datetime import datetime
  from typing import Dict, List, Union
  from botocore.exceptions import ClientError
  from sagemaker.workflow.conditions import ConditionTypeEnum
  from sagemaker.workflow.function_step import DelayedReturn
  from sagemaker.workflow.steps import StepTypeEnum, Step
  from sagemaker.workflow.step_collections import StepCollection
  from sagemaker.workflow.entities import PipelineVariable
  from sagemaker.workflow.parameters import Parameter
  from sagemaker.workflow.functions import Join, JsonGet, PropertyFile
  from sagemaker.workflow.properties import Properties
  from sagemaker.workflow.execution_variables import ExecutionVariable, ExecutionVariables
  from sagemaker.workflow.pipeline import PipelineGraph
  from sagemaker.local.exceptions import StepExecutionException
  from sagemaker.local.utils import get_using_dot_notation
  from sagemaker.utils import unique_name_from_base
  from sagemaker.s3 import parse_s3_url, s3_path_join
label_desc: Use image node_id 6 for calling the LocalPipelineExecutor obj's underlying member method code with example usage: obj.evaluate_pipeline_variable(pipeline_variable, step_name) and returns: value