class_docstr: `_FunctionStep` for SageMaker Pipelines workflows.
  
  An internal step used with ``@step`` decorator to build TrainingJob arguments and
  build a request dict needed for pipeline definition.
docstr: Constructs a _FunctionStep
  
  Args:
      name (str): The name of the `_FunctionStep`.
      display_name (str): The display name of the `_FunctionStep`.
      description (str): The description of the _FunctionStep.
      retry_policies (List[RetryPolicy]):  A list of retry policies.
      depends_on (List[Union[Step, StepCollection, StepOutput]]): A list of `Step`/
          `StepCollection`/`StepOutput` instances that this `_FunctionStep` depends on.
      func (Callable): The python function to run as a pipeline step.
      func_args (tuple): positional arguments to the python function.
      func_kwargs (dict): keyword arguments of the python function.
      **kwargs: Additional arguments to be passed to the `step` decorator.
code: def __init__(
      self,
      name: str,
      display_name: str,
      description: str,
      retry_policies: Optional[List[RetryPolicy]] = None,
      depends_on: Optional[
          List[Union[Step, StepCollection, StepOutput]]
      ] = None,
      func: Callable = None,
      func_args: tuple = (),
      func_kwargs: dict = None,
      **kwargs,
  ):
      """Constructs a _FunctionStep
  
      Args:
          name (str): The name of the `_FunctionStep`.
          display_name (str): The display name of the `_FunctionStep`.
          description (str): The description of the _FunctionStep.
          retry_policies (List[RetryPolicy]):  A list of retry policies.
          depends_on (List[Union[Step, StepCollection, StepOutput]]): A list of `Step`/
              `StepCollection`/`StepOutput` instances that this `_FunctionStep` depends on.
          func (Callable): The python function to run as a pipeline step.
          func_args (tuple): positional arguments to the python function.
          func_kwargs (dict): keyword arguments of the python function.
          **kwargs: Additional arguments to be passed to the `step` decorator.
      """
      from sagemaker.remote_function.core.pipeline_variables import (
          convert_pipeline_variables_to_pickleable,
      )
      from sagemaker.remote_function.core.serialization import (
          CloudpickleSerializer,
      )
      from sagemaker.remote_function.core.stored_function import (
          _SerializedData,
      )
  
      super(_FunctionStep, self).__init__(
          name,
          StepTypeEnum.TRAINING,
          display_name,
          description,
          depends_on,
          retry_policies,
      )
  
      self._func = func
      self._func_args = func_args
      self._func_kwargs = (
          func_kwargs if func_kwargs is not None else dict()
      )
  
      self._step_kwargs = kwargs
  
      self.__job_settings = None
  
      (
          self._converted_func_args,
          self._converted_func_kwargs,
      ) = convert_pipeline_variables_to_pickleable(
          func_args=self._func_args,
          func_kwargs=self._func_kwargs,
      )
  
      self._serialized_data = _SerializedData(
          func=CloudpickleSerializer.serialize(self._func),
          args=CloudpickleSerializer.serialize(
              (self._converted_func_args, self._converted_func_kwargs)
          ),
      )
  
imports: from __future__ import absolute_import
  import logging
  from functools import wraps
  from typing import Dict, List, Optional, Union, Callable, get_origin, get_type_hints, TYPE_CHECKING
  from sagemaker.workflow.functions import JsonGet, Join
  from sagemaker.workflow.entities import RequestType, PipelineVariable
  from sagemaker.workflow.execution_variables import ExecutionVariables
  from sagemaker.workflow.retry import RetryPolicy
  from sagemaker.workflow.steps import Step, ConfigurableRetryStep, StepTypeEnum
  from sagemaker.workflow.step_collections import StepCollection
  from sagemaker.workflow.step_outputs import StepOutput
  from sagemaker.workflow.utilities import trim_request_dict, load_step_compilation_context
  from sagemaker.s3_utils import s3_path_join
  from sagemaker.utils import unique_name_from_base_uuid4, format_tags, Tags
label_desc: Use image node_id 1 to create a new _FunctionStep object from inherited base classes: ConfigurableRetryStep with example: obj = _FunctionStep(name, display_name, description, retry_policies, depends_on, func, func_args, func_kwargs)