class_docstr: An executor that executes SageMaker Pipelines locally.
class_docstr_tok: ["An","executor","that","executes","SageMaker","Pipelines","locally","."]
docstr: Evaluate join function runtime value.
docstr_tok: ["Evaluate","join","function","runtime","value","."]
code: def _evaluate_json_get_function(self, pipeline_variable, step_name):
      """Evaluate join function runtime value."""
      s3_bucket = None
      s3_key = None
      try:
          if pipeline_variable.property_file:
              (
                  s3_bucket,
                  s3_key,
              ) = self._evaluate_json_get_property_file_reference(
                  pipeline_variable=pipeline_variable,
                  step_name=step_name,
              )
          else:
              # JsonGet's s3_uri can only be a Join function
              # This has been validated in _validate_json_get_function
              s3_uri = self._evaluate_join_function(
                  pipeline_variable.s3_uri, step_name
              )
              s3_bucket, s3_key = parse_s3_url(s3_uri)
  
          file_content = self.sagemaker_session.read_s3_file(
              s3_bucket, s3_key
          )
          file_json = json.loads(file_content)
          return get_using_dot_notation(
              file_json, pipeline_variable.json_path
          )
      except ClientError as e:
          self.execution.update_step_failure(
              step_name,
              f"Received an error while reading file {s3_path_join('s3://', s3_bucket, s3_key)} "
              f"from S3: {e.response.get('Code')}: {e.response.get('Message')}",
          )
      except json.JSONDecodeError:
          self.execution.update_step_failure(
              step_name,
              f"Contents of file {s3_path_join('s3://', s3_bucket, s3_key)} are not "
              f"in valid JSON format.",
          )
      except ValueError:
          self.execution.update_step_failure(
              step_name,
              f"Invalid json path '{pipeline_variable.json_path}'",
          )
  
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 10 for calling the LocalPipelineExecutor obj's underlying member method code with example usage: obj._evaluate_json_get_function(pipeline_variable, step_name) and returns: get_using_dot_notation