diff options
Diffstat (limited to 'pkgs/development/python-modules/numba/default.nix')
-rw-r--r-- | pkgs/development/python-modules/numba/default.nix | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix index 965130658c444..35145189207a3 100644 --- a/pkgs/development/python-modules/numba/default.nix +++ b/pkgs/development/python-modules/numba/default.nix @@ -11,6 +11,8 @@ , libcxx , importlib-metadata , substituteAll +, runCommand +, fetchpatch # CUDA-only dependencies: , addOpenGLRunpath ? null @@ -23,14 +25,14 @@ let inherit (cudaPackages) cudatoolkit; in buildPythonPackage rec { - version = "0.56.2"; + version = "0.56.4"; pname = "numba"; format = "setuptools"; disabled = pythonOlder "3.6" || pythonAtLeast "3.11"; src = fetchPypi { inherit pname version; - hash = "sha256-NJLwpdCeJX/FIfU3emxrkH7sGSDRRznwskWLnSmUalo="; + hash = "sha256-Mtn+9BLIFIPX7+DOts9NMxD96LYkqc7MoA95BXOslu4="; }; postPatch = '' @@ -55,7 +57,15 @@ in buildPythonPackage rec { cudatoolkit.lib ]; - patches = lib.optionals cudaSupport [ + patches = [ + # fix failure in test_cache_invalidate (numba.tests.test_caching.TestCache) + # remove when upgrading past version 0.56 + (fetchpatch { + name = "fix-test-cache-invalidate-readonly.patch"; + url = "https://github.com/numba/numba/commit/993e8c424055a7677b2755b184fc9e07549713b9.patch"; + hash = "sha256-IhIqRLmP8gazx+KWIyCxZrNLMT4jZT8CWD3KcH4KjOo="; + }) + ] ++ lib.optionals cudaSupport [ (substituteAll { src = ./cuda_path.patch; cuda_toolkit_path = cudatoolkit; @@ -70,18 +80,40 @@ in buildPythonPackage rec { done ''; - # Copy test script into $out and run the test suite. + # run a smoke test in a temporary directory so that + # a) Python picks up the installed library in $out instead of the build files + # b) we have somewhere to put $HOME so some caching tests work + # c) it doesn't take 6 CPU hours for the full suite checkPhase = '' - ${python.interpreter} -m numba.runtests - ''; + runHook preCheck - # ImportError: cannot import name '_typeconv' - doCheck = false; + pushd $(mktemp -d) + HOME=. ${python.interpreter} -m numba.runtests -m $NIX_BUILD_CORES numba.tests.test_usecases + popd + + runHook postCheck + ''; pythonImportsCheck = [ "numba" ]; + passthru.tests = { + # CONTRIBUTOR NOTE: numba also contains CUDA tests, though these cannot be run in + # this sandbox environment. Consider running similar commands to those below outside the + # sandbox manually if you have the appropriate hardware; support will be detected + # and the corresponding tests enabled automatically. + # Also, the full suite currently does not complete on anything but x86_64-linux. + fullSuite = runCommand "${pname}-test" {} '' + pushd $(mktemp -d) + # pip and python in $PATH is needed for the test suite to pass fully + PATH=${python.withPackages (p: [ p.numba p.pip ])}/bin:$PATH + HOME=$PWD python -m numba.runtests -m $NIX_BUILD_CORES + popd + touch $out # stop Nix from complaining no output was generated and failing the build + ''; + }; + meta = with lib; { description = "Compiling Python code using LLVM"; homepage = "https://numba.pydata.org/"; |