diff options
Diffstat (limited to 'pkgs/development/python-modules/numexpr/default.nix')
-rw-r--r-- | pkgs/development/python-modules/numexpr/default.nix | 61 |
1 files changed, 38 insertions, 23 deletions
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix index 4de1e4a7de05a..0368e3217968c 100644 --- a/pkgs/development/python-modules/numexpr/default.nix +++ b/pkgs/development/python-modules/numexpr/default.nix @@ -1,49 +1,64 @@ -{ lib -, buildPythonPackage -, fetchPypi -, numpy -, packaging -, python -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + numpy, + pytestCheckHook, + setuptools, + wheel, }: buildPythonPackage rec { pname = "numexpr"; - version = "2.9.0"; - format = "setuptools"; - - disabled = pythonOlder "3.6"; + version = "2.10.0"; + pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-8h0S9sQyzjSQieuVNCur9mKa67P93xh6RJLTqtqtqvA="; + hash = "sha256-yJ6TB1JjnfBAU5FgMm2PmahBWbvqQZQ6uOlgWR7arvA="; }; - nativeBuildInputs = [ - numpy - ]; + # patch for compatibility with numpy < 2.0 + # see more details, https://numpy.org/devdocs/numpy_2_0_migration_guide.html#c-api-changes + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "numpy>=2.0.0rc1" "numpy" + sed -i "1i#define PyDataType_SET_ELSIZE(descr, elsize)" numexpr/interpreter.cpp + sed -i "1i#define PyDataType_ELSIZE(descr) ((descr)->elsize)" numexpr/interpreter.cpp + ''; - propagatedBuildInputs = [ + build-system = [ + setuptools + wheel numpy - packaging ]; + dependencies = [ numpy ]; + preBuild = '' # Remove existing site.cfg, use the one we built for numpy ln -s ${numpy.cfg} site.cfg ''; - checkPhase = '' - runtest="$(pwd)/numexpr/tests/test_numexpr.py" - pushd "$out" - ${python.interpreter} "$runtest" + nativeCheckInputs = [ pytestCheckHook ]; + + preCheck = '' + pushd $out + ''; + + postCheck = '' popd ''; - pythonImportsCheck = [ - "numexpr" + disabledTests = [ + # fails on computers with more than 8 threads + # https://github.com/pydata/numexpr/issues/479 + "test_numexpr_max_threads_empty_string" + "test_omp_num_threads_empty_string" ]; + pythonImportsCheck = [ "numexpr" ]; + meta = with lib; { description = "Fast numerical array expression evaluator for NumPy"; homepage = "https://github.com/pydata/numexpr"; |