class_docstr: Provides arguments to Spark UDFs.
docstr: Parses the parameter names from the UDF that correspond to the input data sources.
  
  This function assumes that the udf signature's `params` and `spark` parameters are at the
  end, in any order, if provided.
  
  Args:
      udf_parameter_names (List[str]): The full list of parameters names in the UDF.
  
  Returns:
      List[str]: A subset of parameter names corresponding to the input data sources.
docstr_tok: ["Parses","the","parameter","names","from","the","UDF","that","correspond","to","the","input","data","sources",".","This","function","assumes","that","the","udf","signature","'s","`","params","`","and","`","spark","`","parameters","are","at","the","end",",","in","any","order",",","if","provided",".","Args",":","udf_parameter_names","(","List","[","str","]",")",":","The","full","list","of","parameters","names","in","the","UDF",".","Returns",":","List","[","str","]",":","A","subset","of","parameter","names","corresponding","to","the","input","data","sources","."]
code: def _get_input_parameters(
      self, udf_parameter_names: List[str]
  ) -> List[str]:
      """Parses the parameter names from the UDF that correspond to the input data sources.
  
      This function assumes that the udf signature's `params` and `spark` parameters are at the
      end, in any order, if provided.
  
      Args:
          udf_parameter_names (List[str]): The full list of parameters names in the UDF.
  
      Returns:
          List[str]: A subset of parameter names corresponding to the input data sources.
      """
      inputs_end_index = len(udf_parameter_names) - 1
  
      # Reduce range based on the position of optional kwargs of the UDF.
      if self.PARAMS_ARG_NAME in udf_parameter_names:
          inputs_end_index = (
              udf_parameter_names.index(self.PARAMS_ARG_NAME) - 1
          )
  
      if self.SPARK_SESSION_ARG_NAME in udf_parameter_names:
          inputs_end_index = min(
              inputs_end_index,
              udf_parameter_names.index(self.SPARK_SESSION_ARG_NAME)
              - 1,
          )
  
      return udf_parameter_names[: inputs_end_index + 1]
  
imports: from __future__ import absolute_import
  from abc import ABC, abstractmethod
  from inspect import signature
  from typing import Any, Callable, Dict, Generic, List, OrderedDict, TypeVar, Union, Optional
  import attr
  from pyspark.sql import DataFrame, SparkSession
  from sagemaker.feature_store.feature_processor._data_source import CSVDataSource, FeatureGroupDataSource, ParquetDataSource, BaseDataSource, PySparkDataSource
  from sagemaker.feature_store.feature_processor._feature_processor_config import FeatureProcessorConfig
  from sagemaker.feature_store.feature_processor._input_loader import SparkDataFrameInputLoader
  from sagemaker.feature_store.feature_processor._params_loader import ParamsLoader
  from sagemaker.feature_store.feature_processor._spark_factory import SparkSessionFactory
label_desc: Use image node_id 4 for calling the SparkArgProvider obj's underlying member method code with example usage: obj._get_input_parameters(udf_parameter_names) and returns: udf_parameter_names