1{ lib
2, buildPythonPackage
3, fetchPypi
4, pythonOlder
5, setuptools
6, versioningit
7
8 # mandatory
9, broadbean
10, h5netcdf
11, h5py
12, importlib-metadata
13, importlib-resources
14, ipywidgets
15, ipykernel
16, jsonschema
17, matplotlib
18, numpy
19, opencensus
20, opencensus-ext-azure
21, packaging
22, pandas
23, pyvisa
24, ruamel-yaml
25, tabulate
26, typing-extensions
27, tqdm
28, uncertainties
29, websockets
30, wrapt
31, xarray
32, ipython
33, pillow
34, rsa
35
36 # optional
37, qcodes-loop
38
39 # test
40, pytestCheckHook
41, deepdiff
42, hypothesis
43, lxml
44, pytest-asyncio
45, pytest-mock
46, pytest-rerunfailures
47, pytest-xdist
48, pyvisa-sim
49, sphinx
50}:
51
52buildPythonPackage rec {
53 pname = "qcodes";
54 version = "0.38.1";
55
56 disabled = pythonOlder "3.8";
57 format = "pyproject";
58
59 src = fetchPypi {
60 inherit pname version;
61 sha256 = "sha256-whUGkRvYQOdYxWoj7qhv2kiiyTwq3ZLLipI424PBzFg=";
62 };
63
64 nativeBuildInputs = [ setuptools versioningit ];
65
66 propagatedBuildInputs = [
67 broadbean
68 h5netcdf
69 h5py
70 ipywidgets
71 ipykernel
72 jsonschema
73 matplotlib
74 numpy
75 opencensus
76 opencensus-ext-azure
77 packaging
78 pandas
79 pyvisa
80 ruamel-yaml
81 tabulate
82 typing-extensions
83 tqdm
84 uncertainties
85 websockets
86 wrapt
87 xarray
88 ipython
89 pillow
90 rsa
91 ] ++ lib.optionals (pythonOlder "3.10") [
92 importlib-metadata
93 ] ++ lib.optionals (pythonOlder "3.9") [
94 importlib-resources
95 ];
96
97 passthru.optional-dependencies = {
98 loop = [
99 qcodes-loop
100 ];
101 };
102
103 nativeCheckInputs = [
104 pytestCheckHook
105 deepdiff
106 hypothesis
107 lxml
108 pytest-asyncio
109 pytest-mock
110 pytest-rerunfailures
111 pytest-xdist
112 pyvisa-sim
113 sphinx
114 ];
115
116 disabledTestPaths = [
117 # depends on qcodes-loop, causing a cyclic dependency
118 "qcodes/tests/dataset/measurement/test_load_legacy_data.py"
119 ];
120
121 pythonImportsCheck = [ "qcodes" ];
122
123 postInstall = ''
124 export HOME="$TMPDIR"
125 '';
126
127 meta = {
128 homepage = "https://qcodes.github.io/Qcodes/";
129 description = "Python-based data acquisition framework";
130 license = lib.licenses.mit;
131 maintainers = with lib.maintainers; [ evilmav ];
132 };
133}