From f2d3ed45dc3e83985f9b027a5c8a592b4092204a Mon Sep 17 00:00:00 2001 From: Bruno Rodrigues Date: Thu, 2 Apr 2026 10:02:42 +0200 Subject: [PATCH] python3Packages.sklearn2pmml: init at 0.129.2 --- .../python-modules/sklearn2pmml/default.nix | 88 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 90 insertions(+) create mode 100644 pkgs/development/python-modules/sklearn2pmml/default.nix diff --git a/pkgs/development/python-modules/sklearn2pmml/default.nix b/pkgs/development/python-modules/sklearn2pmml/default.nix new file mode 100644 index 000000000000..6e364097f442 --- /dev/null +++ b/pkgs/development/python-modules/sklearn2pmml/default.nix @@ -0,0 +1,88 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + dill, + jre_minimal, + joblib, + pandas, + scikit-learn, + + # tests + pytestCheckHook, + statsmodels, +}: + +let + jre = jre_minimal.override { + modules = [ + "java.base" + "java.desktop" + "java.instrument" + "java.logging" + "java.net.http" + "java.sql" + "java.xml" + ]; + }; +in +buildPythonPackage (finalAttrs: { + pname = "sklearn2pmml"; + version = "0.129.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jpmml"; + repo = "sklearn2pmml"; + tag = finalAttrs.version; + hash = "sha256-xntm+AUwylJuMhTAYi6o2tIxlzzeo8lkwtSvgeuQpQU="; + }; + + postPatch = '' + substituteInPlace sklearn2pmml/__init__.py \ + --replace-fail 'result.extend(["java"])' 'result.extend(["${lib.getExe jre}"])' + + # Fix deprecated dash-separated key in setup.cfg + substituteInPlace setup.cfg \ + --replace-fail "description-file" "description_file" + ''; + + build-system = [ setuptools ]; + + dependencies = [ + dill + joblib + pandas + scikit-learn + ]; + + nativeCheckInputs = [ + pytestCheckHook + statsmodels + ]; + + pytestFlagsArray = [ + # Only run the main test suite; subpackage tests require + # sklearn-pandas which is not available in nixpkgs + "sklearn2pmml/tests" + ]; + + pythonImportsCheck = [ "sklearn2pmml" ]; + + meta = { + description = "Python library for converting Scikit-Learn pipelines to PMML"; + homepage = "https://github.com/jpmml/sklearn2pmml"; + changelog = "https://github.com/jpmml/sklearn2pmml/blob/${finalAttrs.version}/NEWS.md"; + sourceProvenance = with lib.sourceTypes; [ + fromSource + binaryBytecode # bundled JAR files + ]; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ b-rodrigues ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0139394c19fc..fd93bc07c70d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -17753,6 +17753,8 @@ self: super: with self; { sklearn-deap = callPackage ../development/python-modules/sklearn-deap { }; + sklearn2pmml = callPackage ../development/python-modules/sklearn2pmml { }; + skodaconnect = callPackage ../development/python-modules/skodaconnect { }; skops = callPackage ../development/python-modules/skops { };