linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / python-modules / scikitlearn / default.nix
blob7e9e37831e0db938ce6ee8dcdca86fa07aebbcab
1 { stdenv
2 , lib
3 , buildPythonPackage
4 , fetchPypi
5 , fetchpatch
6 , gfortran
7 , glibcLocales
8 , numpy
9 , scipy
10 , pytest
11 , pillow
12 , cython
13 , joblib
14 , llvmPackages
15 , threadpoolctl
16 , pythonOlder
19 buildPythonPackage rec {
20   pname = "scikit-learn";
21   version = "0.24.1";
22   disabled = pythonOlder "3.6";
24   src = fetchPypi {
25     inherit pname version;
26     sha256 = "oDNKGALmTWVgIsO/q1anP71r9LEpg0PzaIryFRgQu98=";
27   };
29   patches = [
30     # This patch fixes compatibility with numpy 1.20. It was merged before 0.24.1 was released,
31     # but for some reason was not included in the 0.24.1 release tarball.
32     (fetchpatch {
33       url = "https://github.com/scikit-learn/scikit-learn/commit/e7ef22c3ba2334cb3b476e95d7c083cf6b48ce56.patch";
34       sha256 = "174554k1pbf92bj7wgq0xjj16bkib32ailyhwavdxaknh4bd9nmv";
35     })
36   ];
38   buildInputs = [
39     pillow
40     gfortran
41     glibcLocales
42   ] ++ lib.optionals stdenv.cc.isClang [
43     llvmPackages.openmp
44   ];
46   nativeBuildInputs = [
47     cython
48   ];
50   propagatedBuildInputs = [
51     numpy
52     scipy
53     numpy.blas
54     joblib
55     threadpoolctl
56   ];
57   checkInputs = [ pytest ];
59   LC_ALL="en_US.UTF-8";
61   doCheck = !stdenv.isAarch64;
62   # Skip test_feature_importance_regression - does web fetch
63   checkPhase = ''
64     cd $TMPDIR
65     HOME=$TMPDIR OMP_NUM_THREADS=1 pytest -k "not test_feature_importance_regression" --pyargs sklearn
66   '';
68   meta = with lib; {
69     description = "A set of python modules for machine learning and data mining";
70     changelog = let
71       major = versions.major version;
72       minor = versions.minor version;
73       dashVer = replaceChars ["."] ["-"] version;
74     in
75       "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}";
76     homepage = "https://scikit-learn.org";
77     license = licenses.bsd3;
78     maintainers = with maintainers; [ ];
79   };