about summary refs log tree commit diff
path: root/pkgs/development/python-modules/scikit-learn
diff options
context:
space:
mode:
authorDavHau <hsngrmpf+github@gmail.com>2021-05-15 01:46:36 +0700
committerDavHau <hsngrmpf+github@gmail.com>2021-05-17 17:41:36 +0700
commitcd8f3e6c448c1622b26a80c62e03e42857ec099b (patch)
treede3335decfd1cd39513777eb4043db16e7690df1 /pkgs/development/python-modules/scikit-learn
parenta17bfa39ceb81d26c5814d657fdd6935da10556a (diff)
python3Packages.scikitlearn: rename to scikit-learn
Diffstat (limited to 'pkgs/development/python-modules/scikit-learn')
-rw-r--r--pkgs/development/python-modules/scikit-learn/0.20.nix38
-rw-r--r--pkgs/development/python-modules/scikit-learn/default.nix80
2 files changed, 118 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/scikit-learn/0.20.nix b/pkgs/development/python-modules/scikit-learn/0.20.nix
new file mode 100644
index 0000000000000..81915e83d2dc9
--- /dev/null
+++ b/pkgs/development/python-modules/scikit-learn/0.20.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, buildPythonPackage, fetchPypi
+, gfortran, glibcLocales
+, numpy, scipy, pytest, pillow
+}:
+
+# 0.20.x is the last version that maintains python2 compatibility
+
+buildPythonPackage rec {
+  pname = "scikit-learn";
+  version = "0.20.4";
+  # UnboundLocalError: local variable 'message' referenced before assignment
+  disabled = stdenv.isi686;  # https://github.com/scikit-learn/scikit-learn/issues/5534
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1z3w2c50dwwa297j88pr16pyrjysagsvdj7vrlq40q8777rs7a6z";
+  };
+
+  buildInputs = [ pillow gfortran glibcLocales ];
+  propagatedBuildInputs = [ numpy scipy numpy.blas ];
+  checkInputs = [ pytest ];
+
+  LC_ALL="en_US.UTF-8";
+
+  doCheck = !stdenv.isAarch64;
+  # Skip test_feature_importance_regression - does web fetch
+  checkPhase = ''
+    cd $TMPDIR
+    HOME=$TMPDIR OMP_NUM_THREADS=1 pytest -k "not test_feature_importance_regression" --pyargs sklearn
+  '';
+
+  meta = with lib; {
+    description = "A set of python modules for machine learning and data mining";
+    homepage = "https://scikit-learn.org";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix
new file mode 100644
index 0000000000000..7e9e37831e0db
--- /dev/null
+++ b/pkgs/development/python-modules/scikit-learn/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, gfortran
+, glibcLocales
+, numpy
+, scipy
+, pytest
+, pillow
+, cython
+, joblib
+, llvmPackages
+, threadpoolctl
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "scikit-learn";
+  version = "0.24.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "oDNKGALmTWVgIsO/q1anP71r9LEpg0PzaIryFRgQu98=";
+  };
+
+  patches = [
+    # This patch fixes compatibility with numpy 1.20. It was merged before 0.24.1 was released,
+    # but for some reason was not included in the 0.24.1 release tarball.
+    (fetchpatch {
+      url = "https://github.com/scikit-learn/scikit-learn/commit/e7ef22c3ba2334cb3b476e95d7c083cf6b48ce56.patch";
+      sha256 = "174554k1pbf92bj7wgq0xjj16bkib32ailyhwavdxaknh4bd9nmv";
+    })
+  ];
+
+  buildInputs = [
+    pillow
+    gfortran
+    glibcLocales
+  ] ++ lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
+  ];
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    numpy.blas
+    joblib
+    threadpoolctl
+  ];
+  checkInputs = [ pytest ];
+
+  LC_ALL="en_US.UTF-8";
+
+  doCheck = !stdenv.isAarch64;
+  # Skip test_feature_importance_regression - does web fetch
+  checkPhase = ''
+    cd $TMPDIR
+    HOME=$TMPDIR OMP_NUM_THREADS=1 pytest -k "not test_feature_importance_regression" --pyargs sklearn
+  '';
+
+  meta = with lib; {
+    description = "A set of python modules for machine learning and data mining";
+    changelog = let
+      major = versions.major version;
+      minor = versions.minor version;
+      dashVer = replaceChars ["."] ["-"] version;
+    in
+      "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}";
+    homepage = "https://scikit-learn.org";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
+}