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: Returns the job settings for the step.
code: def _job_settings(self) -> "_JobSettings":
      """Returns the job settings for the step."""
  
      from sagemaker.remote_function.job import _JobSettings
  
      context = load_step_compilation_context()
  
      if self.__job_settings and (
          not context
          or self.__job_settings.sagemaker_session
          is context.sagemaker_session
      ):
          return self.__job_settings
  
      self.__job_settings = _JobSettings(
          dependencies=self._step_kwargs.get("dependencies"),
          pre_execution_commands=self._step_kwargs.get(
              "pre_execution_commands"
          ),
          pre_execution_script=self._step_kwargs.get(
              "pre_execution_script"
          ),
          environment_variables=self._step_kwargs.get(
              "environment_variables"
          ),
          image_uri=self._step_kwargs.get("image_uri"),
          instance_count=self._step_kwargs.get("instance_count"),
          instance_type=self._step_kwargs.get("instance_type"),
          job_conda_env=self._step_kwargs.get("job_conda_env"),
          job_name_prefix=self._step_kwargs.get("job_name_prefix"),
          keep_alive_period_in_seconds=self._step_kwargs.get(
              "keep_alive_period_in_seconds"
          ),
          max_retry_attempts=self._step_kwargs.get(
              "max_retry_attempts"
          ),
          max_runtime_in_seconds=self._step_kwargs.get(
              "max_runtime_in_seconds"
          ),
          role=self._step_kwargs.get("role"),
          security_group_ids=self._step_kwargs.get(
              "security_group_ids"
          ),
          subnets=self._step_kwargs.get("subnets"),
          tags=self._step_kwargs.get("tags"),
          volume_kms_key=self._step_kwargs.get("volume_kms_key"),
          volume_size=self._step_kwargs.get("volume_size"),
          encrypt_inter_container_traffic=self._step_kwargs.get(
              "encrypt_inter_container_traffic"
          ),
          spark_config=self._step_kwargs.get("spark_config"),
          use_spot_instances=self._step_kwargs.get(
              "use_spot_instances"
          ),
          max_wait_time_in_seconds=self._step_kwargs.get(
              "max_wait_time_in_seconds"
          ),
          sagemaker_session=context.sagemaker_session,
      )
  
      return self.__job_settings
  
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 6 for calling the _FunctionStep obj's underlying member method code with example usage: obj._job_settings() and returns: self, self