ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / development / python-modules / scikit-learn / default.nix
blobd9c4f07ccb8defacd2800483d8f520f72b360b44
1 { stdenv
2 , lib
3 , buildPythonPackage
4 , fetchPypi
5 , fetchpatch
6 , gfortran
7 , glibcLocales
8 , numpy
9 , scipy
10 , pytestCheckHook
11 , pytest-xdist
12 , pillow
13 , cython
14 , joblib
15 , llvmPackages
16 , threadpoolctl
17 , pythonOlder
20 buildPythonPackage rec {
21   pname = "scikit-learn";
22   version = "1.1.3";
23   disabled = pythonOlder "3.6";
25   src = fetchPypi {
26     inherit pname version;
27     sha256 = "sha256-vvUZeKUewZl3cA/nuGrs6knIJYhPOBF1a3SjsVK7TjU=";
28   };
30   buildInputs = [
31     pillow
32     glibcLocales
33   ] ++ lib.optionals stdenv.cc.isClang [
34     llvmPackages.openmp
35   ];
37   nativeBuildInputs = [
38     cython
39     gfortran
40   ];
42   propagatedBuildInputs = [
43     numpy
44     scipy
45     numpy.blas
46     joblib
47     threadpoolctl
48   ];
50   checkInputs = [ pytestCheckHook pytest-xdist ];
52   LC_ALL="en_US.UTF-8";
54   preBuild = ''
55     export SKLEARN_BUILD_PARALLEL=$NIX_BUILD_CORES
56   '';
58   doCheck = !stdenv.isAarch64;
60   disabledTests = [
61     # Skip test_feature_importance_regression - does web fetch
62     "test_feature_importance_regression"
64     # failing on macos
65     "check_regressors_train"
66     "check_classifiers_train"
67     "xfail_ignored_in_check_estimator"
68   ];
70   pytestFlagsArray = [
71     # verbose build outputs needed to debug hard-to-reproduce hydra failures
72     "-v"
73     "--pyargs" "sklearn"
75     # NuSVC memmap tests causes segmentation faults in certain environments
76     # (e.g. Hydra Darwin machines) related to a long-standing joblib issue
77     # (https://github.com/joblib/joblib/issues/563). See also:
78     # https://github.com/scikit-learn/scikit-learn/issues/17582
79     # Since we are overriding '-k' we need to include the 'disabledTests' from above manually.
80     "-k" "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'"
81   ];
83   preCheck = ''
84     cd $TMPDIR
85     export HOME=$TMPDIR
86     export OMP_NUM_THREADS=1
87   '';
89   pythonImportsCheck = [ "sklearn" ];
91   meta = with lib; {
92     description = "A set of python modules for machine learning and data mining";
93     changelog = let
94       major = versions.major version;
95       minor = versions.minor version;
96       dashVer = replaceChars ["."] ["-"] version;
97     in
98       "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}";
99     homepage = "https://scikit-learn.org";
100     license = licenses.bsd3;
101     maintainers = with maintainers; [ davhau ];
102   };