diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index c2e927f203d0..ab644dcb02e6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -4958,6 +4958,12 @@ githubId = 2512008; name = "Even Brenden"; }; + evilmav = { + email = "elenskiy.ilya@gmail.com"; + github = "evilmav"; + githubId = 6803717; + name = "Ilya Elenskiy"; + }; evils = { email = "evils.devils@protonmail.com"; matrix = "@evils:nixos.dev"; diff --git a/pkgs/development/python-modules/broadbean/default.nix b/pkgs/development/python-modules/broadbean/default.nix new file mode 100644 index 000000000000..aa4df0961797 --- /dev/null +++ b/pkgs/development/python-modules/broadbean/default.nix @@ -0,0 +1,47 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, setuptools +, versioningit +, numpy +, matplotlib +, schema +, hypothesis +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "broadbean"; + version = "0.11.0"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-e+LAcmWxT+SkaWtToPgg+x3QRu5fCSm+w4dLCcyZrw8="; + }; + + nativeBuildInputs = [ setuptools versioningit ]; + + propagatedBuildInputs = [ + numpy + matplotlib + schema + ]; + + nativeCheckInputs = [ + hypothesis + pytestCheckHook + ]; + + pythonImportsCheck = [ "broadbean" ]; + + meta = { + homepage = "https://qcodes.github.io/broadbean"; + description = "A library for making pulses that can be leveraged with QCoDeS"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ evilmav ]; + }; +} diff --git a/pkgs/development/python-modules/opencensus-ext-azure/default.nix b/pkgs/development/python-modules/opencensus-ext-azure/default.nix new file mode 100644 index 000000000000..132ce33264e2 --- /dev/null +++ b/pkgs/development/python-modules/opencensus-ext-azure/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, azure-core +, azure-identity +, opencensus +, psutil +, requests +}: + +buildPythonPackage rec { + pname = "opencensus-ext-azure"; + version = "1.1.9"; + format = "setuptools"; + + disabled = pythonOlder "3.4"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-UHYIt36djqq2/9X/EbfOuH9U5KapQMS4FDMbTRsDQVE="; + }; + + propagatedBuildInputs = [ + azure-core + azure-identity + opencensus + psutil + requests + ]; + + pythonImportsCheck = [ "opencensus.ext.azure" ]; + + doCheck = false; # tests are not included in the PyPi tarball + + meta = with lib; { + homepage = "https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-azure"; + description = "OpenCensus Azure Monitor Exporter"; + license = licenses.asl20; + maintainers = with maintainers; [ billhuang evilmav ]; + }; +} diff --git a/pkgs/development/python-modules/pyvisa-sim/default.nix b/pkgs/development/python-modules/pyvisa-sim/default.nix new file mode 100644 index 000000000000..56fef67a1f9f --- /dev/null +++ b/pkgs/development/python-modules/pyvisa-sim/default.nix @@ -0,0 +1,49 @@ +{ lib +, fetchPypi +, pythonOlder +, buildPythonPackage +, pyvisa +, pyyaml +, stringparser +, typing-extensions +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "pyvisa-sim"; + version = "0.5.1"; + format = "pyproject"; + + disabled = pythonOlder "3.8"; + + src = fetchPypi { + pname = "PyVISA-sim"; + inherit version; + sha256 = "sha256-vWxW941/1e58pqL/Rzq+eoZJpwsvLphgIe48SuJtohY="; + }; + + propagatedBuildInputs = [ + pyvisa + pyyaml + stringparser + typing-extensions + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "pyvisa_sim" ]; + + # should be fixed after 0.5.1, remove at next release + disabledTestPaths = [ + "pyvisa_sim/testsuite/test_all.py" + ]; + + meta = with lib; { + description = "Simulated backend for PyVISA implementing TCPIP, GPIB, RS232, and USB resources"; + homepage = "https://pyvisa.readthedocs.io/projects/pyvisa-sim/en/latest/"; + license = licenses.mit; + maintainers = with maintainers; [ evilmav ]; + }; +} diff --git a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix new file mode 100644 index 000000000000..e26745e77566 --- /dev/null +++ b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix @@ -0,0 +1,58 @@ +{ lib +, fetchFromGitHub +, pythonOlder +, buildPythonPackage +, setuptools +, versioningit +, qcodes +, packaging +, pytestCheckHook +, pytest-mock +, pyvisa-sim +}: + +buildPythonPackage rec { + pname = "qcodes-contrib-drivers"; + version = "0.18.0"; + + disabled = pythonOlder "3.8"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "QCoDeS"; + repo = "Qcodes_contrib_drivers"; + rev = "v${version}"; + sha256 = "sha256-hg3jSiuOkiuOInnUzzlKtBeoP5zkCDBQ3xP6KCwq+lU="; + }; + + nativeBuildInputs = [ setuptools versioningit ]; + + propagatedBuildInputs = [ + qcodes + packaging + ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-mock + pyvisa-sim + ]; + + pythonImportsCheck = [ "qcodes_contrib_drivers" ]; + + # should be fixed starting with 0.19.0, remove at next release + disabledTestPaths = [ + "qcodes_contrib_drivers/tests/test_Keysight_M3201A.py" + ]; + + postInstall = '' + export HOME="$TMPDIR" + ''; + + meta = with lib; { + description = "User contributed drivers for QCoDeS"; + homepage = "https://github.com/QCoDeS/Qcodes_contrib_drivers"; + license = licenses.mit; + maintainers = with maintainers; [ evilmav ]; + }; +} diff --git a/pkgs/development/python-modules/qcodes-loop/default.nix b/pkgs/development/python-modules/qcodes-loop/default.nix new file mode 100644 index 000000000000..ef65af007d90 --- /dev/null +++ b/pkgs/development/python-modules/qcodes-loop/default.nix @@ -0,0 +1,87 @@ +{ lib +, fetchPypi +, pythonOlder +, buildPythonPackage +, qcodes +, h5py +, lazy-loader +, matplotlib +, numpy +, pandas +, versioningit +, xarray +, hickle +, ipython +, slack-sdk +, hypothesis +, pytest-xdist +, pytest-mock +, pyqtgraph +, pyqt5 +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "qcodes-loop"; + version = "0.1.1"; + + disabled = pythonOlder "3.8"; + format = "pyproject"; + + src = fetchPypi { + inherit version; + pname = "qcodes_loop"; + sha256 = "sha256-pDR0Ws8cYQifftdE9dKcSzMxmouFo4tJmQvNanm6zyM="; + }; + + nativeBuildInputs = [ + versioningit + ]; + + propagatedBuildInputs = [ + qcodes + h5py + lazy-loader + matplotlib + numpy + pandas + xarray + hickle + ipython + ]; + + passthru.optional-dependencies = { + qtplot = [ + pyqtgraph + ]; + slack = [ + slack-sdk + ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + hypothesis + pytest-xdist + pytest-mock + pyqt5 + ]; + + pythonImportsCheck = [ "qcodes_loop" ]; + + disabledTestPaths = [ + # test broken in 0.1.1, see https://github.com/QCoDeS/Qcodes_loop/pull/25 + "src/qcodes_loop/tests/test_hdf5formatter.py" + ]; + + postInstall = '' + export HOME="$TMPDIR" + ''; + + meta = with lib; { + description = "Features previously in QCoDeS"; + homepage = "https://github.com/QCoDeS/Qcodes_loop"; + license = licenses.mit; + maintainers = with maintainers; [ evilmav ]; + }; +} diff --git a/pkgs/development/python-modules/qcodes/default.nix b/pkgs/development/python-modules/qcodes/default.nix new file mode 100644 index 000000000000..46e39fc4fcf8 --- /dev/null +++ b/pkgs/development/python-modules/qcodes/default.nix @@ -0,0 +1,133 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, setuptools +, versioningit + + # mandatory +, broadbean +, h5netcdf +, h5py +, importlib-metadata +, importlib-resources +, ipywidgets +, ipykernel +, jsonschema +, matplotlib +, numpy +, opencensus +, opencensus-ext-azure +, packaging +, pandas +, pyvisa +, ruamel-yaml +, tabulate +, typing-extensions +, tqdm +, uncertainties +, websockets +, wrapt +, xarray +, ipython +, pillow +, rsa + + # optional +, qcodes-loop + + # test +, pytestCheckHook +, deepdiff +, hypothesis +, lxml +, pytest-asyncio +, pytest-mock +, pytest-rerunfailures +, pytest-xdist +, pyvisa-sim +, sphinx +}: + +buildPythonPackage rec { + pname = "qcodes"; + version = "0.38.1"; + + disabled = pythonOlder "3.8"; + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-whUGkRvYQOdYxWoj7qhv2kiiyTwq3ZLLipI424PBzFg="; + }; + + nativeBuildInputs = [ setuptools versioningit ]; + + propagatedBuildInputs = [ + broadbean + h5netcdf + h5py + ipywidgets + ipykernel + jsonschema + matplotlib + numpy + opencensus + opencensus-ext-azure + packaging + pandas + pyvisa + ruamel-yaml + tabulate + typing-extensions + tqdm + uncertainties + websockets + wrapt + xarray + ipython + pillow + rsa + ] ++ lib.optionals (pythonOlder "3.10") [ + importlib-metadata + ] ++ lib.optionals (pythonOlder "3.9") [ + importlib-resources + ]; + + passthru.optional-dependencies = { + loop = [ + qcodes-loop + ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + deepdiff + hypothesis + lxml + pytest-asyncio + pytest-mock + pytest-rerunfailures + pytest-xdist + pyvisa-sim + sphinx + ]; + + disabledTestPaths = [ + # depends on qcodes-loop, causing a cyclic dependency + "qcodes/tests/dataset/measurement/test_load_legacy_data.py" + ]; + + pythonImportsCheck = [ "qcodes" ]; + + postInstall = '' + export HOME="$TMPDIR" + ''; + + meta = { + homepage = "https://qcodes.github.io/Qcodes/"; + description = "Python-based data acquisition framework"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ evilmav ]; + }; +} diff --git a/pkgs/development/python-modules/stringparser/default.nix b/pkgs/development/python-modules/stringparser/default.nix new file mode 100644 index 000000000000..bac315950781 --- /dev/null +++ b/pkgs/development/python-modules/stringparser/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, setuptools +, setuptools-scm +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "stringparser"; + version = "0.6"; + format = "setuptools"; + + disabled = pythonOlder "3.5"; + + src = fetchFromGitHub { + owner = "hgrecco"; + repo = pname; + rev = version; + sha256 = "sha256-uyeHuH0UfpZqh7sMRI6+fR/Rr2jSzdR+5O/MtzslO5w="; + }; + + nativeBuildInputs = [ setuptools setuptools-scm ]; + + pythonImportsCheck = [ "stringparser" ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + meta = with lib; { + description = "Easy to use pattern matching and information extraction"; + homepage = "https://github.com/hgrecco/stringparser"; + license = licenses.bsd3; + maintainers = with maintainers; [ evilmav ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5afdc74df447..08421b557c20 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1493,6 +1493,8 @@ self: super: with self; { brian2 = callPackage ../development/python-modules/brian2 { }; + broadbean = callPackage ../development/python-modules/broadbean { }; + broadlink = callPackage ../development/python-modules/broadlink { }; brother = callPackage ../development/python-modules/brother { }; @@ -7059,6 +7061,8 @@ self: super: with self; { opencensus-context = callPackage ../development/python-modules/opencensus-context { }; + opencensus-ext-azure = callPackage ../development/python-modules/opencensus-ext-azure { }; + opencontainers = callPackage ../development/python-modules/opencontainers { }; opencv3 = toPythonModule (pkgs.opencv3.override { @@ -10167,6 +10171,8 @@ self: super: with self; { pyvisa-py = callPackage ../development/python-modules/pyvisa-py { }; + pyvisa-sim = callPackage ../development/python-modules/pyvisa-sim { }; + pyvista = callPackage ../development/python-modules/pyvista { }; pyviz-comms = callPackage ../development/python-modules/pyviz-comms { }; @@ -10259,6 +10265,12 @@ self: super: with self; { qcengine = callPackage ../development/python-modules/qcengine { }; + qcodes = callPackage ../development/python-modules/qcodes { }; + + qcodes-contrib-drivers = callPackage ../development/python-modules/qcodes-contrib-drivers { }; + + qcodes-loop = callPackage ../development/python-modules/qcodes-loop { }; + qcs-api-client = callPackage ../development/python-modules/qcs-api-client { }; qdarkstyle = callPackage ../development/python-modules/qdarkstyle { }; @@ -11742,6 +11754,8 @@ self: super: with self; { stringly = callPackage ../development/python-modules/stringly { }; + stringparser = callPackage ../development/python-modules/stringparser { }; + stripe = callPackage ../development/python-modules/stripe { }; striprtf = callPackage ../development/python-modules/striprtf { };