1{ lib
2, stdenv
3, buildPythonPackage
4, fetchPypi
5, h5py
6, hickle
7, hypothesis
8, ipython
9, lazy-loader
10, matplotlib
11, numpy
12, pandas
13, pyqt5
14, pyqtgraph
15, pytest-mock
16, pytest-xdist
17, pytestCheckHook
18, pythonOlder
19, qcodes
20, setuptools
21, slack-sdk
22, versioningit
23, wheel
24, xarray
25}:
26
27buildPythonPackage rec {
28 pname = "qcodes-loop";
29 version = "0.1.2";
30 pyproject = true;
31
32 disabled = pythonOlder "3.8";
33
34 src = fetchPypi {
35 inherit version;
36 pname = "qcodes_loop";
37 hash = "sha256-TizNSC49n4Xc2BmJNziARlVXYQxp/LtwmKpgqQkQ3a8=";
38 };
39
40 nativeBuildInputs = [
41 setuptools
42 versioningit
43 wheel
44 ];
45
46 propagatedBuildInputs = [
47 qcodes
48 h5py
49 lazy-loader
50 matplotlib
51 numpy
52 pandas
53 xarray
54 hickle
55 ipython
56 ];
57
58 passthru.optional-dependencies = {
59 qtplot = [
60 pyqtgraph
61 ];
62 slack = [
63 slack-sdk
64 ];
65 };
66
67 nativeCheckInputs = [
68 pytestCheckHook
69 hypothesis
70 pytest-xdist
71 pytest-mock
72 pyqt5
73 ];
74
75 pythonImportsCheck = [
76 "qcodes_loop"
77 ];
78
79 postInstall = ''
80 export HOME="$TMPDIR"
81 '';
82
83 disabledTests = [
84 # AssertionError: False is not true
85 "TestHDF5_Format"
86 ];
87
88 meta = with lib; {
89 description = "Features previously in QCoDeS";
90 homepage = "https://github.com/QCoDeS/Qcodes_loop";
91 changelog = "https://github.com/QCoDeS/Qcodes_loop/releases/tag/v${version}";
92 license = licenses.mit;
93 maintainers = with maintainers; [ evilmav ];
94 # Some tests fail on this platform
95 broken = stdenv.isDarwin;
96 };
97}