From e18aefe2003239c9a8e1078ac134d25de57e2d25 Mon Sep 17 00:00:00 2001 From: "Robert T. McGibbon" Date: Sat, 26 Dec 2020 13:11:11 -0500 Subject: [PATCH] python39Packages.gpy: unbreak on python3.9 --- .../python-modules/gpy/default.nix | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/gpy/default.nix b/pkgs/development/python-modules/gpy/default.nix index dbc5791ac33..e4a20bc83d7 100644 --- a/pkgs/development/python-modules/gpy/default.nix +++ b/pkgs/development/python-modules/gpy/default.nix @@ -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 }; }