From f3ce83719f0673ae4d89edba2e9ef69374e897df Mon Sep 17 00:00:00 2001
From: Philip Wilk
Date: Sun, 11 May 2025 04:36:20 +0100
Subject: [PATCH 1/2] python312Packages.sklearn-compat: init at 0.1.3
---
.../python-modules/sklearn-compat/default.nix | 52 +++++++++++++++++++
pkgs/top-level/python-packages.nix | 2 +
2 files changed, 54 insertions(+)
create mode 100644 pkgs/development/python-modules/sklearn-compat/default.nix
diff --git a/pkgs/development/python-modules/sklearn-compat/default.nix b/pkgs/development/python-modules/sklearn-compat/default.nix
new file mode 100644
index 000000000000..3fd17c6cade4
--- /dev/null
+++ b/pkgs/development/python-modules/sklearn-compat/default.nix
@@ -0,0 +1,52 @@
+{
+ lib,
+ buildPythonPackage,
+ fetchFromGitHub,
+ hatchling,
+ scikit-learn,
+ pandas,
+ pytestCheckHook,
+ pytest-cov,
+ pytest-xdist,
+ pytz,
+}:
+
+buildPythonPackage rec {
+ pname = "sklearn-compat";
+ version = "0.1.3";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "sklearn-compat";
+ repo = "sklearn-compat";
+ tag = version;
+ hash = "sha256-9Py5VKDej7xDMdWVujkS/ooxOkEcjPJNlBHkbe/rycE=";
+ };
+
+ build-system = [
+ hatchling
+ ];
+
+ dependencies = [
+ scikit-learn
+ ];
+
+ nativeCheckInputs = [
+ pandas
+ pytestCheckHook
+ pytest-cov
+ pytest-xdist
+ pytz
+ ];
+
+ pythonImportsCheck = [
+ "sklearn_compat"
+ ];
+
+ meta = {
+ description = "Ease multi-version support for scikit-learn compatible library";
+ homepage = "https://github.com/sklearn-compat/sklearn-compat";
+ license = lib.licenses.bsd3;
+ maintainers = with lib.maintainers; [ philipwilk ];
+ };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 7543f3ec1f8c..d2efbb0b1031 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -16428,6 +16428,8 @@ self: super: with self; {
skl2onnx = callPackage ../development/python-modules/skl2onnx { };
+ sklearn-compat = callPackage ../development/python-modules/sklearn-compat { };
+
sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
skodaconnect = callPackage ../development/python-modules/skodaconnect { };
From 580ee5ad6a380d7270c04da7faa05a90d6b2096a Mon Sep 17 00:00:00 2001
From: Philip Wilk
Date: Sun, 11 May 2025 04:44:23 +0100
Subject: [PATCH 2/2] python312Packages.imbalanced-learn: 0.12.4 -> 0.13.0
---
.../imbalanced-learn/default.nix | 27 ++++++++++++++++---
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index b09f6da99388..dd192cab0cd9 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -14,6 +14,8 @@
tensorflow,
threadpoolctl,
pytestCheckHook,
+ sklearn-compat,
+ python,
}:
buildPythonPackage rec {
@@ -41,6 +43,7 @@ buildPythonPackage rec {
scikit-learn
scipy
threadpoolctl
+ sklearn-compat
];
optional-dependencies = {
@@ -60,19 +63,35 @@ buildPythonPackage rec {
preCheck = ''
export HOME=$TMPDIR
+ # The GitHub source contains too many files picked up by pytest like
+ # examples and documentation files which can't pass.
+ cd $out/${python.sitePackages}
'';
disabledTestPaths = [
# require tensorflow and keras, but we don't want to
# add them to nativeCheckInputs just for this tests
- "imblearn/keras/_generator.py"
+ "imblearn/keras"
+ "imblearn/tensorflow"
+ # even with precheck directory change, pytest still tries to test docstrings
+ "imblearn/tests/test_docstring_parameters.py"
+ # Skip dependencies test - pythonImportsCheck already does this
+ "imblearn/utils/tests/test_min_dependencies.py"
];
- meta = with lib; {
+ disabledTests = [
+ # Broken upstream test https://github.com/scikit-learn-contrib/imbalanced-learn/issues/1131
+ "test_estimators_compatibility_sklearn"
+ ];
+
+ meta = {
description = "Library offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance";
homepage = "https://github.com/scikit-learn-contrib/imbalanced-learn";
changelog = "https://github.com/scikit-learn-contrib/imbalanced-learn/releases/tag/${version}";
- license = licenses.mit;
- maintainers = [ maintainers.rmcgibbo ];
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [
+ rmcgibbo
+ philipwilk
+ ];
};
}