From 7770164a072968dc6373beb1763082b7c1061796 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 8 Jun 2022 12:26:02 +0200 Subject: [PATCH] python310Packages.qutip: 4.6.3 -> 4.7.0 --- .../python-modules/qutip/default.nix | 141 ++++++++++-------- 1 file changed, 81 insertions(+), 60 deletions(-) diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix index 75c186fc8351..e99deef489f3 100644 --- a/pkgs/development/python-modules/qutip/default.nix +++ b/pkgs/development/python-modules/qutip/default.nix @@ -1,70 +1,91 @@ -{ lib, stdenv, fetchFromGitHub, buildPythonPackage, python, packaging, numpy -, cython, scipy, matplotlib, pytestCheckHook, pytest-rerunfailures -, doCheck ? false +{ lib +, stdenv +, buildPythonPackage +, cvxopt +, cvxpy +, cython +, doCheck ? true +, fetchFromGitHub +, matplotlib +, numpy +, packaging +, pytest-rerunfailures +, pytestCheckHook +, python +, pythonOlder +, scipy }: -let - self = buildPythonPackage rec { - pname = "qutip"; - version = "4.6.3"; +buildPythonPackage rec { + pname = "qutip"; + version = "4.7.0"; + format = "setuptools"; - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-11K7Tl7PE98nM2vGsa+OKIJYu0Wmv8dT700PDt9RRVk="; - }; + disabled = pythonOlder "3.7"; - # QuTiP says it needs specific (old) Numpy versions. We overwrite them here - # as the tests work perfectly fine with up-to-date packages. - postPatch = '' - substituteInPlace setup.cfg --replace "numpy>=1.16.6,<1.20" "numpy>=1.16.6" - ''; + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + hash = "sha256-wGr6uTM6pFL2nvN4zdqPdEO8O3kjrRtKWx8luL1t9Sw="; + }; - # Disabling OpenMP support on Darwin. - setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) "--with-openmp"; + nativeBuildInputs = [ + cython + ]; - propagatedBuildInputs = [ - packaging - numpy - cython - scipy + propagatedBuildInputs = [ + numpy + packaging + scipy + ]; + + checkInputs = [ + pytestCheckHook + pytest-rerunfailures + ] ++ passthru.optional-dependencies.graphics; + + # Disabling OpenMP support on Darwin. + setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) [ + "--with-openmp" + ]; + + # QuTiP tries to access the home directory to create an rc file for us. + # We need to go to another directory to run the tests from there. + # This is due to the Cython-compiled modules not being in the correct location + # of the source tree. + preCheck = '' + export HOME=$(mktemp -d); + export OMP_NUM_THREADS=$NIX_BUILD_CORES + mkdir -p test && cd test + ''; + + # For running tests, see https://qutip.org/docs/latest/installation.html#verifying-the-installation + checkPhase = '' + runHook preCheck + ${python.interpreter} -c "import qutip.testing; qutip.testing.run()" + runHook postCheck + ''; + + pythonImportsCheck = [ + "qutip" + ]; + + passthru.optional-dependencies = { + graphics = [ matplotlib ]; - - checkInputs = [ - pytestCheckHook - pytest-rerunfailures + semidefinite = [ + cvxpy + cvxopt ]; - - # test suite is very cpu intensive - inherit doCheck; - # - QuTiP tries to access the home directory to create an rc file for us. - # This of course fails and therefore, we provide a writable temp dir as HOME. - # - We need to go to another directory to run the tests from there. - # This is due to the Cython-compiled modules not being in the correct location - # of the source tree. - # - For running tests, see: - # https://qutip.org/docs/latest/installation.html#verifying-the-installation - checkPhase = '' - export OMP_NUM_THREADS=$NIX_BUILD_CORES - export HOME=$(mktemp -d) - mkdir -p test && cd test - ${python.interpreter} -c "import qutip.testing; qutip.testing.run()" - ''; - - pythonImportsCheck = [ "qutip" ]; - - passthru.tests = { - all-tests = self.override { doCheck = true; }; - }; - - meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64); - description = "Open-source software for simulating the dynamics of closed and open quantum systems"; - homepage = "https://qutip.org/"; - license = licenses.bsd3; - maintainers = [ maintainers.fabiangd ]; - }; }; -in self + + meta = with lib; { + broken = (stdenv.isLinux && stdenv.isAarch64); + description = "Open-source software for simulating the dynamics of closed and open quantum systems"; + homepage = "https://qutip.org/"; + license = licenses.bsd3; + maintainers = with maintainers; [ fabiangd ]; + }; +}