class_docstr: An interface class to different DiCE implementations.
docstr: Decides DiCE implementation type.
docstr_tok: ["Decides","DiCE","implementation","type","."]
code: def decide_implementation_type(
      self, data_interface, model_interface, method, **kwargs
  ):
      """Decides DiCE implementation type."""
      if model_interface.backend == BackEndTypes.Sklearn:
          if method == SamplingStrategy.KdTree and isinstance(
              data_interface, PrivateData
          ):
              raise UserConfigValidationException(
                  "Private data interface is not supported with kdtree explainer"
                  " since kdtree explainer needs access to entire training data"
              )
      self.__class__ = decide(model_interface, method)
      self.__init__(data_interface, model_interface, **kwargs)
  
file_path: DiCE/dice_ml/dice.py
imports: from raiutils.exceptions import UserConfigValidationException
  from dice_ml.constants import BackEndTypes, SamplingStrategy
  from dice_ml.data_interfaces.private_data_interface import PrivateData
  from dice_ml.explainer_interfaces.explainer_base import ExplainerBase
label_desc: Use image node_id 2 for calling the Dice obj's underlying member method code with example usage: obj.decide_implementation_type(data_interface, model_interface, method) without return types