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 + ]; }; }