class_docstr: A data interface for private data with meta information.
class_docstr_tok: ["A","data","interface","for","private","data","with","meta","information","."]
code: def get_features_range(
      self, permitted_range_input=None, features_dict=None
  ):
      if features_dict is None:
          features_dict = self.permitted_range
  
      ranges = {}
      # Getting default ranges based on the dataset
      for feature in features_dict:
          if (
              type(features_dict[feature][0]) is int
          ):  # continuous feature
              ranges[feature] = features_dict[feature]
          else:
              ranges[feature] = features_dict[feature]
      feature_ranges_orig = ranges.copy()
      # Overwriting the ranges for a feature if input provided
      if permitted_range_input is not None:
          for (
              feature_name,
              feature_range,
          ) in permitted_range_input.items():
              ranges[feature_name] = feature_range
      return ranges, feature_ranges_orig
  
imports: import collections
  import logging
  import sys
  from collections import defaultdict
  import numpy
  import pandas
  from sklearn.preprocessing import LabelEncoder
  from dice_ml.data_interfaces.base_data_interface import _BaseData
label_desc: Use image node_id 10 for calling the PrivateData obj's underlying member method code with example usage: obj.get_features_range(permitted_range_input, features_dict) and returns: ranges,  feature_ranges_orig