2017-12-29 18:56:37 +01:00
|
|
|
{ lib
|
|
|
|
, buildPythonPackage
|
|
|
|
, fetchPypi
|
|
|
|
, python
|
|
|
|
, numpy
|
2018-10-18 21:00:48 +02:00
|
|
|
, 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
|
|
|
};
|
|
|
|
|
2018-10-18 21:00:48 +02: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;
|
|
|
|
};
|
|
|
|
}
|