biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / qutip / default.nix
blob12b6c1b9e9d9903f651f6c6fe65356dcbaff1756
2   lib,
3   buildPythonPackage,
4   cvxopt,
5   cvxpy,
6   cython_0,
7   fetchFromGitHub,
8   ipython,
9   matplotlib,
10   numpy,
11   oldest-supported-numpy,
12   packaging,
13   pytest-rerunfailures,
14   pytestCheckHook,
15   python,
16   pythonOlder,
17   scipy,
18   setuptools,
21 buildPythonPackage rec {
22   pname = "qutip";
23   version = "5.0.2";
24   pyproject = true;
26   disabled = pythonOlder "3.7";
28   src = fetchFromGitHub {
29     owner = pname;
30     repo = pname;
31     rev = "refs/tags/v${version}";
32     hash = "sha256-lMPzgmUaoEQB5TzmqEJFiFTuS3AGpyMMjPHlPUKTLvk=";
33   };
35   nativeBuildInputs = [
36     cython_0
37     setuptools
38     oldest-supported-numpy
39   ];
41   propagatedBuildInputs = [
42     numpy
43     packaging
44     scipy
45   ];
47   nativeCheckInputs = [
48     pytestCheckHook
49     pytest-rerunfailures
50   ] ++ lib.flatten (builtins.attrValues optional-dependencies);
52   # QuTiP tries to access the home directory to create an rc file for us.
53   # We need to go to another directory to run the tests from there.
54   # This is due to the Cython-compiled modules not being in the correct location
55   # of the source tree.
56   preCheck = ''
57     export HOME=$(mktemp -d);
58     export OMP_NUM_THREADS=$NIX_BUILD_CORES
59     mkdir -p test && cd test
60   '';
62   # For running tests, see https://qutip.org/docs/latest/installation.html#verifying-the-installation
63   checkPhase = ''
64     runHook preCheck
65     ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
66     runHook postCheck
67   '';
69   pythonImportsCheck = [ "qutip" ];
71   optional-dependencies = {
72     graphics = [ matplotlib ];
73     ipython = [ ipython ];
74     semidefinite = [
75       cvxpy
76       cvxopt
77     ];
78   };
80   meta = with lib; {
81     description = "Open-source software for simulating the dynamics of closed and open quantum systems";
82     homepage = "https://qutip.org/";
83     changelog = "https://github.com/qutip/qutip/releases/tag/v${version}";
84     license = licenses.bsd3;
85     maintainers = with maintainers; [ fabiangd ];
86   };