docstr: Validate and set the dictionary of permitted ranges for continuous features.
docstr_tok: ["Validate","and","set","the","dictionary","of","permitted","ranges","for","continuous","features","."]
code: def _validate_and_set_permitted_range(
      self, params, features_dict=None
  ):
      """Validate and set the dictionary of permitted ranges for continuous features."""
      input_permitted_range = None
      if "permitted_range" in params:
          input_permitted_range = params["permitted_range"]
  
          if not hasattr(self, "feature_names"):
              raise SystemException(
                  "Feature names not correctly set in public data interface"
              )
  
          for (
              input_permitted_range_feature_name
          ) in input_permitted_range:
              if (
                  input_permitted_range_feature_name
                  not in self.feature_names
              ):
                  raise UserConfigValidationException(
                      "permitted_range contains some feature names which are not part of columns in dataframe"
                  )
      self.permitted_range, _ = self.get_features_range(
          input_permitted_range, features_dict
      )
  
file_path: DiCE/dice_ml/data_interfaces/base_data_interface.py
imports: from abc import ABC, abstractmethod
  import pandas
  from raiutils.exceptions import UserConfigValidationException
  from dice_ml.utils.exception import SystemException
label_desc: Use image node_id 6 for calling the _BaseData obj's underlying member method code with example usage: obj._validate_and_set_permitted_range(params, features_dict) without return types