diff options
Diffstat (limited to 'pkgs/development/python-modules/scikit-learn/default.nix')
-rw-r--r-- | pkgs/development/python-modules/scikit-learn/default.nix | 94 |
1 files changed, 46 insertions, 48 deletions
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix index bbcb44de2c02a..591df46640db0 100644 --- a/pkgs/development/python-modules/scikit-learn/default.nix +++ b/pkgs/development/python-modules/scikit-learn/default.nix @@ -1,57 +1,56 @@ -{ stdenv -, lib -, buildPythonPackage -, fetchPypi -, fetchpatch - -# build-system -, cython -, gfortran -, numpy -, scipy -, setuptools -, wheel - -# native dependencies -, glibcLocales -, llvmPackages -, pytestCheckHook -, pytest-xdist -, pillow -, joblib -, threadpoolctl -, pythonOlder +{ + stdenv, + lib, + buildPythonPackage, + fetchPypi, + + # build-system + cython, + gfortran, + numpy, + scipy, + setuptools, + wheel, + + # native dependencies + glibcLocales, + llvmPackages, + pytestCheckHook, + pythonRelaxDepsHook, + pytest-xdist, + pillow, + joblib, + threadpoolctl, + pythonOlder, }: buildPythonPackage rec { pname = "scikit-learn"; - version = "1.4.1.post1"; + version = "1.4.2"; pyproject = true; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-k9PUlv8ZZUcPmXfQXl7DN2+x5jsQ5P2l450jwtiWmjA="; + hash = "sha256-2qHEcdlbrQgMbkS0lGyTkKSEKtwwglcsIOT4iE456Vk="; }; - patches = [ - (fetchpatch { # included in >= 1.4.2 - name = "test_standard_scaler_dtype.patch"; - url = "https://github.com/jeremiedbb/scikit-learn/commit/87c32d35eeb8f6f7fec63dc3d97d9c416545f053.diff"; - hash = "sha256-iOBOoWHuWChCTnZ5go7MobPcHRGMChROpCI7V/5ik1Y="; - }) - ]; + # Avoid build-system requirements causing failure + prePatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "numpy==2.0.0rc1" "numpy" + ''; buildInputs = [ + numpy.blas pillow glibcLocales - ] ++ lib.optionals stdenv.cc.isClang [ - llvmPackages.openmp - ]; + ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]; nativeBuildInputs = [ gfortran + pythonRelaxDepsHook ]; build-system = [ @@ -62,10 +61,6 @@ buildPythonPackage rec { wheel ]; - propagatedBuildInputs = [ - numpy.blas - ]; - dependencies = [ joblib numpy @@ -78,7 +73,7 @@ buildPythonPackage rec { pytest-xdist ]; - env.LC_ALL="en_US.UTF-8"; + env.LC_ALL = "en_US.UTF-8"; preBuild = '' export SKLEARN_BUILD_PARALLEL=$NIX_BUILD_CORES @@ -95,14 +90,16 @@ buildPythonPackage rec { pytestFlagsArray = [ # verbose build outputs needed to debug hard-to-reproduce hydra failures "-v" - "--pyargs" "sklearn" + "--pyargs" + "sklearn" # NuSVC memmap tests causes segmentation faults in certain environments # (e.g. Hydra Darwin machines) related to a long-standing joblib issue # (https://github.com/joblib/joblib/issues/563). See also: # https://github.com/scikit-learn/scikit-learn/issues/17582 # Since we are overriding '-k' we need to include the 'disabledTests' from above manually. - "-k" "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'" + "-k" + "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'" ]; preCheck = '' @@ -114,12 +111,13 @@ buildPythonPackage rec { pythonImportsCheck = [ "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 = replaceStrings ["."] ["-"] version; - in + description = "Set of python modules for machine learning and data mining"; + changelog = + let + major = versions.major version; + minor = versions.minor version; + dashVer = replaceStrings [ "." ] [ "-" ] version; + in "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}"; homepage = "https://scikit-learn.org"; license = licenses.bsd3; |