class_docstr: Class that wraps a user provided function.
class_docstr_tok: ["Class","that","wraps","a","user","provided","function","."]
docstr: Wrap the provided UDF with the logic defined by the FeatureProcessorConfig.
  
  General functionality of the wrapper function includes but is not limited to loading data
  sources and ingesting output data to a Feature Group.
  
  Args:
      udf (Callable[..., T]): The feature_processor wrapped user function.
      fp_config (FeatureProcessorConfig): The configuration for the feature_processor.
  
  Returns:
      Callable[..., None]: the user provided function wrapped with feature_processor logic.
docstr_tok: ["Wrap","the","provided","UDF","with","the","logic","defined","by","the","FeatureProcessorConfig",".","General","functionality","of","the","wrapper","function","includes","but","is","not","limited","to","loading","data","sources","and","ingesting","output","data","to","a","Feature","Group",".","Args",":","udf","(","Callable","[","...",",","T","]",")",":","The","feature_processor","wrapped","user","function",".","fp_config","(","FeatureProcessorConfig",")",":","The","configuration","for","the","feature_processor",".","Returns",":","Callable","[","...",",","None","]",":","the","user","provided","function","wrapped","with","feature_processor","logic","."]
code: def wrap(
      self, udf: Callable[..., T], fp_config: FeatureProcessorConfig
  ) -> Callable[..., None]:
      """Wrap the provided UDF with the logic defined by the FeatureProcessorConfig.
  
      General functionality of the wrapper function includes but is not limited to loading data
      sources and ingesting output data to a Feature Group.
  
      Args:
          udf (Callable[..., T]): The feature_processor wrapped user function.
          fp_config (FeatureProcessorConfig): The configuration for the feature_processor.
  
      Returns:
          Callable[..., None]: the user provided function wrapped with feature_processor logic.
      """
  
      @functools.wraps(udf)
      def wrapper() -> None:
          udf_args, udf_kwargs = self._prepare_udf_args(
              udf=udf,
              fp_config=fp_config,
          )
  
          output = udf(*udf_args, **udf_kwargs)
  
          self.udf_output_receiver.ingest_udf_output(output, fp_config)
  
      return wrapper
  
file_path: sagemaker-python-sdk/src/sagemaker/feature_store/feature_processor/_udf_wrapper.py
imports: from __future__ import absolute_import
  import functools
  from typing import Any, Callable, Dict, Generic, Tuple, TypeVar
  import attr
  from sagemaker.feature_store.feature_processor._feature_processor_config import FeatureProcessorConfig
  from sagemaker.feature_store.feature_processor._udf_arg_provider import UDFArgProvider
  from sagemaker.feature_store.feature_processor._udf_output_receiver import UDFOutputReceiver
label_desc: Use image node_id 1 for calling the UDFWrapper obj's underlying member method code with example usage: obj.wrap(udf, fp_config) and returns: wrapper