code: def _get_onedal_params(self, X, y=None):
      class_count = 0 if self.classes_ is None else len(self.classes_)
      weights = getattr(self, "weights", "uniform")
      return {
          "fptype": "float" if X.dtype == np.float32 else "double",
          "vote_weights": "uniform"
          if weights == "uniform"
          else "distance",
          "method": self._fit_method,
          "radius": self.radius,
          "class_count": class_count,
          "neighbor_count": self.n_neighbors,
          "metric": self.effective_metric_,
          "p": self.p,
          "metric_params": self.effective_metric_params_,
          "result_option": "indices|distances"
          if y is None
          else "responses",
      }
  
imports: from abc import ABCMeta
  from numbers import Integral
  import numpy
  from daal4py import bf_knn_classification_prediction, bf_knn_classification_training, kdtree_knn_classification_prediction, kdtree_knn_classification_training
  from onedal import _backend
  from ..common._estimator_checks import _check_is_fitted, _is_classifier, _is_regressor
  from ..common._mixin import ClassifierMixin, RegressorMixin
  from ..common._policy import _get_policy
  from ..datatypes import _convert_to_supported, from_table, to_table
  from ..utils import _check_array, _check_classification_targets, _check_n_features, _check_X_y, _column_or_1d, _num_samples
label_desc: Use image node_id 5 for calling the NeighborsCommonBase obj's underlying member method code with example usage: obj._get_onedal_params(X, y) and returns: dict