From 2ee35974635457b89781ef77a24bf905dbe8beea Mon Sep 17 00:00:00 2001 From: David Cortes Date: Mon, 8 Dec 2025 16:48:49 +0100 Subject: [PATCH 1/3] don't deselect valid conformance tests --- deselected_tests.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/deselected_tests.yaml b/deselected_tests.yaml index 5b1f30ad93..397df09abe 100755 --- a/deselected_tests.yaml +++ b/deselected_tests.yaml @@ -31,9 +31,6 @@ deselected_tests: - linear_model/tests/test_ridge.py::test_ridge_shapes_type - linear_model/tests/test_ridge.py::test_ridge_cv_results_predictions[2-False-False] - linear_model/tests/test_ridge.py::test_ridge_cv_results_predictions[2-False-True] - - neighbors/tests/test_neighbors.py::test_nan_euclidean_support[KNeighborsClassifier-params0] - - neighbors/tests/test_neighbors.py::test_nan_euclidean_support[KNeighborsRegressor-params1] - - neighbors/tests/test_neighbors.py::test_nan_euclidean_support[LocalOutlierFactor-params6] # sklearn 1.7 unsupported features - tests/test_common.py::test_estimators[LinearRegression()-check_sample_weight_equivalence_on_dense_data] From e9012b79f5d7a4940f469b90fdf9ff35724912bc Mon Sep 17 00:00:00 2001 From: David Cortes Date: Mon, 8 Dec 2025 16:58:02 +0100 Subject: [PATCH 2/3] fix for older sklearn --- sklearnex/neighbors/common.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sklearnex/neighbors/common.py b/sklearnex/neighbors/common.py index f358b4f1c5..7493dc3ec9 100644 --- a/sklearnex/neighbors/common.py +++ b/sklearnex/neighbors/common.py @@ -37,6 +37,9 @@ class KNeighborsDispatchingBase(oneDALEstimator): def _fit_validation(self, X, y=None): if sklearn_check_version("1.2"): self._validate_params() + effective_metric = self.effective_metric_ + else: + effective_metric = self.metric check_feature_names(self, X, reset=True) if self.metric_params is not None and "p" in self.metric_params: if self.p is not None: @@ -71,8 +74,8 @@ def _fit_validation(self, X, y=None): dtype=[np.float64, np.float32], accept_sparse=True, force_all_finite=not ( - isinstance(self.effective_metric_, str) - and self.effective_metric_.startswith("nan") + isinstance(effective_metric, str) + and effective_metric.startswith("nan") ), ) self.n_samples_fit_ = _num_samples(self._fit_X) From ce6a3b8100ff9e0f668903d29d0b4fa603c6a094 Mon Sep 17 00:00:00 2001 From: David Cortes Date: Mon, 8 Dec 2025 17:31:01 +0100 Subject: [PATCH 3/3] Revert "fix for older sklearn" This reverts commit e9012b79f5d7a4940f469b90fdf9ff35724912bc. --- sklearnex/neighbors/common.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sklearnex/neighbors/common.py b/sklearnex/neighbors/common.py index 7493dc3ec9..f358b4f1c5 100644 --- a/sklearnex/neighbors/common.py +++ b/sklearnex/neighbors/common.py @@ -37,9 +37,6 @@ class KNeighborsDispatchingBase(oneDALEstimator): def _fit_validation(self, X, y=None): if sklearn_check_version("1.2"): self._validate_params() - effective_metric = self.effective_metric_ - else: - effective_metric = self.metric check_feature_names(self, X, reset=True) if self.metric_params is not None and "p" in self.metric_params: if self.p is not None: @@ -74,8 +71,8 @@ def _fit_validation(self, X, y=None): dtype=[np.float64, np.float32], accept_sparse=True, force_all_finite=not ( - isinstance(effective_metric, str) - and effective_metric.startswith("nan") + isinstance(self.effective_metric_, str) + and self.effective_metric_.startswith("nan") ), ) self.n_samples_fit_ = _num_samples(self._fit_X)