code: def test_convert_pipeline_variables_to_pickleable():
      function_step = Mock()
      function_step.name = "parent_step"
      func_args = (
          DelayedReturn(
              function_step, reference_path=("__getitem__", 0)
          ),
          ParameterBoolean("parameter_1"),
          ParameterInteger("parameter_2"),
          ParameterFloat("parameter_3"),
          ParameterString("parameter_4"),
          Properties(
              step_name="step_name",
              shape_name="DescribeTrainingJobResponse",
          ).TrainingJobName,
          1,
          2.0,
      )
      func_kwargs = {
          "a": DelayedReturn(
              function_step, reference_path=("__getitem__", 1)
          ),
          "b": ParameterBoolean("parameter_1"),
          "c": ParameterInteger("parameter_2"),
          "d": ParameterFloat("parameter_3"),
          "e": ParameterString("parameter_4"),
          "f": Properties(
              step_name="step_name",
              shape_name="DescribeTrainingJobResponse",
          ).TrainingJobName,
          "g": 1,
          "h": 2.0,
      }
  
      (
          converted_args,
          converted_kwargs,
      ) = convert_pipeline_variables_to_pickleable(
          func_args, func_kwargs
      )
  
      assert converted_args == (
          _DelayedReturn(
              uri=[
                  _S3BaseUriIdentifier(),
                  _ExecutionVariable(name="PipelineExecutionId"),
                  "parent_step",
                  "results",
              ],
              reference_path=("__getitem__", 0),
          ),
          _ParameterBoolean(name="parameter_1"),
          _ParameterInteger(name="parameter_2"),
          _ParameterFloat(name="parameter_3"),
          _ParameterString(name="parameter_4"),
          _Properties(path="Steps.step_name.TrainingJobName"),
          1,
          2.0,
      )
  
      assert converted_kwargs == {
          "a": _DelayedReturn(
              uri=[
                  _S3BaseUriIdentifier(),
                  _ExecutionVariable(name="PipelineExecutionId"),
                  "parent_step",
                  "results",
              ],
              reference_path=("__getitem__", 1),
          ),
          "b": _ParameterBoolean(name="parameter_1"),
          "c": _ParameterInteger(name="parameter_2"),
          "d": _ParameterFloat(name="parameter_3"),
          "e": _ParameterString(name="parameter_4"),
          "f": _Properties(path="Steps.step_name.TrainingJobName"),
          "g": 1,
          "h": 2.0,
      }
  
file_path: sagemaker-python-sdk/tests/unit/sagemaker/remote_function/core/test_pipeline_variables.py
imports: from __future__ import absolute_import
  import pytest
  from mock import patch, Mock
  from sagemaker.remote_function.core.pipeline_variables import _ParameterInteger, _ParameterFloat, _ParameterString, _ParameterBoolean, _ExecutionVariable, _Properties, _DelayedReturn, Context, _ParameterResolver, _ExecutionVariableResolver, _DelayedReturnResolver, resolve_pipeline_variables, convert_pipeline_variables_to_pickleable, _S3BaseUriIdentifier
  from sagemaker.workflow.parameters import ParameterInteger, ParameterFloat, ParameterString, ParameterBoolean
  from sagemaker.workflow.function_step import DelayedReturn
  from sagemaker.workflow.properties import Properties
label_desc: Use image node_id 5 for calling a global function with example usage: test_convert_pipeline_variables_to_pickleable() without return types