python39Packages.gpy: unbreak on python3.9

This commit is contained in:
Robert T. McGibbon 2020-12-26 13:11:11 -05:00
parent aaef07f51a
commit e18aefe200

View File

@ -1,5 +1,14 @@
{ stdenv, buildPythonPackage, fetchPypi
, numpy, scipy, six, paramz, nose, matplotlib, cython }:
{ stdenv
, buildPythonPackage
, fetchPypi
, numpy
, scipy
, six
, paramz
, matplotlib
, cython
, nose
}:
buildPythonPackage rec {
pname = "GPy";
@ -10,21 +19,35 @@ buildPythonPackage rec {
sha256 = "04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed";
};
# running tests produces "ImportError: cannot import name 'linalg_cython'"
# even though Cython has run
checkPhase = "nosetests -d";
doCheck = false;
buildInputs = [ cython ];
propagatedBuildInputs = [ numpy scipy six paramz matplotlib ];
checkInputs = [ nose ];
buildInputs = [ cython ];
# $ nosetests GPy/testing/*.py
# => Ran 483 tests in 112.146s (on 8 cores)
# So instead, run shorter set of tests
checkPhase = ''
nosetests GPy/testing/linalg_test.py
'';
propagatedBuildInputs = [ numpy scipy six paramz matplotlib ];
# Rebuild cython-generated .c files since the included
# ones were built with an older version of cython that is
# incompatible with python3.9
preBuild = ''
for fn in $(find . -name '*.pyx'); do
echo $fn | sed 's/\.\.pyx$/\.c/' | xargs ${cython}/bin/cython -3
done
'';
pythonImportsCheck = [
"GPy"
];
meta = with stdenv.lib; {
description = "Gaussian process framework in Python";
homepage = "https://sheffieldml.github.io/GPy";
license = licenses.bsd3;
maintainers = with maintainers; [ bcdarwin ];
broken = stdenv.isDarwin; # See inscrutable error message here: https://github.com/NixOS/nixpkgs/pull/107653#issuecomment-751527547
};
}