docstr: Placeholder class for feature metadata provided by the user.
  
  :param identity_feature_name: Name of the feature which helps to
      uniquely identify a row or instance in user input dataset.
  :type identity_feature_name: Optional[str]
  :param datetime_features: Names of datetime features in the user input
      dataset.
  :type datetime_features: Optional[List[str]]
  :param categorical_features: List of categorical features in the
      user input dataset.
  :type categorical_features: Optional[List[str]]
  :param dropped_features: List of features that were dropped by the
      the user during training of their model.
  :type dropped_features: Optional[List[str]]
  :param time_series_id_features: List of features that are used
      to uniquely identify a time series in the user input dataset.
      Time series ID features are only relevant for forecasting, i.e.,
      when the task is 'forecasting'. Specifying time series ID features
      for other tasks will result in validation errors.
  :type time_series_id_features: Optional[List[str]]
docstr_tok: ["Placeholder","class","for","feature","metadata","provided","by","the","user",".",":","param","identity_feature_name",":","Name","of","the","feature","which","helps","to","uniquely","identify","a","row","or","instance","in","user","input","dataset",".",":","type","identity_feature_name",":","Optional","[","str","]",":","param","datetime_features",":","Names","of","datetime","features","in","the","user","input","dataset",".",":","type","datetime_features",":","Optional","[","List","[","str","]","]",":","param","categorical_features",":","List","of","categorical","features","in","the","user","input","dataset",".",":","type","categorical_features",":","Optional","[","List","[","str","]","]",":","param","dropped_features",":","List","of","features","that","were","dropped","by","the","the","user","during","training","of","their","model",".",":","type","dropped_features",":","Optional","[","List","[","str","]","]",":","param","time_series_id_features",":","List","of","features","that","are","used","to","uniquely","identify","a","time","series","in","the","user","input","dataset",".","Time","series","ID","features","are","only","relevant","for","forecasting",",","i.e.",",","when","the","task","is","'forecasting","'",".","Specifying","time","series","ID","features","for","other","tasks","will","result","in","validation","errors",".",":","type","time_series_id_features",":","Optional","[","List","[","str","]","]"]
code: def __init__(
      self,
      identity_feature_name: Optional[str] = None,
      datetime_features: Optional[List[str]] = None,
      categorical_features: Optional[List[str]] = None,
      dropped_features: Optional[List[str]] = None,
      time_series_id_features: Optional[List[str]] = None,
  ):
      """Placeholder class for feature metadata provided by the user.
  
      :param identity_feature_name: Name of the feature which helps to
          uniquely identify a row or instance in user input dataset.
      :type identity_feature_name: Optional[str]
      :param datetime_features: Names of datetime features in the user input
          dataset.
      :type datetime_features: Optional[List[str]]
      :param categorical_features: List of categorical features in the
          user input dataset.
      :type categorical_features: Optional[List[str]]
      :param dropped_features: List of features that were dropped by the
          the user during training of their model.
      :type dropped_features: Optional[List[str]]
      :param time_series_id_features: List of features that are used
          to uniquely identify a time series in the user input dataset.
          Time series ID features are only relevant for forecasting, i.e.,
          when the task is 'forecasting'. Specifying time series ID features
          for other tasks will result in validation errors.
      :type time_series_id_features: Optional[List[str]]
      """
      if identity_feature_name is not None and not isinstance(
          identity_feature_name, str
      ):
          raise UserConfigValidationException(
              "identity_feature_name must be a string."
          )
      FeatureMetadata._validate_column_list(
          _DATETIME_FEATURE_PURPOSE, datetime_features
      )
      FeatureMetadata._validate_column_list(
          _CATEGORICAL_FEATURE_PURPOSE, categorical_features
      )
      FeatureMetadata._validate_column_list(
          _DROPPED_FEATURE_PURPOSE, dropped_features
      )
      FeatureMetadata._validate_column_list(
          _TIME_SERIES_ID_FEATURE_PURPOSE, time_series_id_features
      )
  
      self.identity_feature_name = identity_feature_name
      self.datetime_features = datetime_features
      self.categorical_features = categorical_features
      self.dropped_features = dropped_features
      self.time_series_id_features = time_series_id_features
  
file_path: responsible-ai-toolbox/responsibleai/responsibleai/feature_metadata.py
imports: from typing import Any, Dict, List, Optional
  from raiutils.exceptions import UserConfigValidationException
label_desc: Use image node_id 1 to create a new FeatureMetadata object  with example: obj = FeatureMetadata(identity_feature_name, datetime_features, categorical_features, dropped_features, time_series_id_features)