class_docstr: Base clustering model container class, for easier definition of containers. Ensures consistent format
  before being turned into a dataframe row.
  
  Parameters
  ----------
  id : str
      ID used as index.
  name : str
      Full display name.
  class_def : type
      The class used for the model, eg. LogisticRegression.
  eq_function : type, default = None
      Function to use to check whether an object (model) can be considered equal to the model
      in the container. If None, will be ``is_instance(x, class_def)`` where x is the object.
  args : dict, default = {} (empty dict)
      The arguments to always pass to constructor when initializing object of class_def class.
  is_special : bool, default = False
      Is the model special (not intended to be used on its own, eg. VotingClassifier).
  tune_grid : dict of str : list, default = {} (empty dict)
      The hyperparameters tuning grid for random and grid search.
  tune_distribution : dict of str : Distribution, default = {} (empty dict)
      The hyperparameters tuning grid for other types of searches.
  tune_args : dict, default = {} (empty dict)
      The arguments to always pass to the tuner.
  is_gpu_enabled : bool, default = None
      If None, will try to automatically determine.
  
  Attributes
  ----------
  id : str
      ID used as index.
  name : str
      Full display name.
  class_def : type
      The class used for the model, eg. LogisticRegression.
  eq_function : type
      Function to use to check whether an object (model) can be considered equal to the model
      in the container. If None, will be ``is_instance(x, class_def)`` where x is the object.
  args : dict
      The arguments to always pass to constructor when initializing object of class_def class.
  is_special : bool
      Is the model special (not intended to be used on its own, eg. VotingClassifier).
  tune_grid : dict of str : list
      The hyperparameters tuning grid for random and grid search.
  tune_distribution : dict of str : Distribution
      The hyperparameters tuning grid for other types of searches.
  tune_args : dict
      The arguments to always pass to the tuner.
  is_gpu_enabled : bool
      If None, will try to automatically determine.
docstr: Returns a dictionary of the model properties, to
  be turned into a pandas DataFrame row.
  
  Parameters
  ----------
  internal : bool, default = True
      If True, will return all properties. If False, will only
      return properties intended for the user to see.
  
  Returns
  -------
  dict of str : Any
docstr_tok: ["Returns","a","dictionary","of","the","model","properties",",","to","be","turned","into","a","pandas","DataFrame","row",".","Parameters","--","--","--","--","--","internal",":","bool",",","default","=","True","If","True",",","will","return","all","properties",".","If","False",",","will","only","return","properties","intended","for","the","user","to","see",".","Returns","--","--","--","-","dict","of","str",":","Any"]
code: def get_dict(self, internal: bool = True) -> Dict[str, Any]:
      """
      Returns a dictionary of the model properties, to
      be turned into a pandas DataFrame row.
  
      Parameters
      ----------
      internal : bool, default = True
          If True, will return all properties. If False, will only
          return properties intended for the user to see.
  
      Returns
      -------
      dict of str : Any
  
      """
      d = [
          ("ID", self.id),
          ("Name", self.name),
          ("Reference", self.reference),
      ]
  
      if internal:
          d += [
              ("Special", self.is_special),
              ("Class", self.class_def),
              ("Equality", self.eq_function),
              ("Args", self.args),
              ("Tune Grid", self.tune_grid),
              ("Tune Distributions", self.tune_distribution),
              ("Tune Args", self.tune_args),
              ("GPU Enabled", self.is_gpu_enabled),
          ]
  
      return dict(d)
  
imports: from typing import Any, Dict, List, Optional
  import numpy
  import pycaret.containers.base_container
  import pycaret.internal.cuml_wrappers
  from pycaret.containers.models.base_model import ModelContainer
  from pycaret.internal.cuml_wrappers import get_dbscan, get_kmeans
  from pycaret.internal.distributions import Distribution
  from pycaret.utils._dependencies import _check_soft_dependencies
  from pycaret.utils.generic import get_logger, param_grid_to_lists
label_desc: Use image node_id 2 for calling the ClusterContainer obj's underlying member method code with example usage: obj.get_dict(internal) and returns: dict