class_docstr: Abstract base class for feature processor data sources.
  
  Provides a skeleton for customization requiring the overriding of the method to read data from
  data source and return the specified type.
class_docstr_tok: ["Abstract","base","class","for","feature","processor","data","sources",".","Provides","a","skeleton","for","customization","requiring","the","overriding","of","the","method","to","read","data","from","data","source","and","return","the","specified","type","."]
docstr: The identifier for the customized feature processor data source.
  
  Returns:
      str: The data source unique id.
docstr_tok: ["The","identifier","for","the","customized","feature","processor","data","source",".","Returns",":","str",":","The","data","source","unique","id","."]
code: def data_source_unique_id(self) -> str:
      """The identifier for the customized feature processor data source.
  
      Returns:
          str: The data source unique id.
      """
  
file_path: sagemaker-python-sdk/src/sagemaker/feature_store/feature_processor/_data_source.py
imports: from __future__ import absolute_import
  from typing import Optional, Dict, Union, TypeVar, Generic
  from abc import ABC, abstractmethod
  from pyspark.sql import DataFrame, SparkSession
  import attr
label_desc: Use image node_id 2 for calling the BaseDataSource obj's underlying member method code with example usage: obj.data_source_unique_id() without return types