nixpkgs/pkgs/development/python-modules/numexpr/default.nix

50 lines
1.2 KiB
Nix
Raw Normal View History

2017-12-29 18:56:37 +01:00
{ lib
, buildPythonPackage
, fetchPypi
, python
, numpy
, llvmPackages ? null
2017-12-29 18:56:37 +01:00
}:
buildPythonPackage rec {
pname = "numexpr";
2018-08-25 18:41:12 +02:00
version = "2.6.8";
2017-12-29 18:56:37 +01:00
src = fetchPypi {
inherit pname version;
2018-08-25 18:41:12 +02:00
sha256 = "ee8bc7201aa2f1962c67d27c326a11eef9df887d7b87b1278a1d4e722bf44375";
2017-12-29 18:56:37 +01:00
};
# Remove existing site.cfg, use the one we built for numpy.
# Somehow openmp needs to be added to LD_LIBRARY_PATH
# https://software.intel.com/en-us/forums/intel-system-studio/topic/611682
preBuild = ''
rm site.cfg
ln -s ${numpy.cfg} site.cfg
export LD_LIBRARY_PATH=${llvmPackages.openmp}/lib
'';
buildInputs = [] ++ lib.optional (numpy.blasImplementation == "mkl") llvmPackages.openmp;
2017-12-29 18:56:37 +01:00
propagatedBuildInputs = [ numpy ];
# Run the test suite.
# It requires the build path to be in the python search path.
checkPhase = ''
2018-08-25 18:41:12 +02:00
pushd $out
2017-12-29 18:56:37 +01:00
${python}/bin/${python.executable} <<EOF
import sys
import numexpr
r = numexpr.test()
if not r.wasSuccessful():
sys.exit(1)
EOF
2018-08-25 18:41:12 +02:00
popd
2017-12-29 18:56:37 +01:00
'';
meta = {
description = "Fast numerical array expression evaluator for NumPy";
homepage = "https://github.com/pydata/numexpr";
license = lib.licenses.mit;
};
}