diff --git a/pkgs/development/python-modules/pythonqwt/default.nix b/pkgs/development/python-modules/pythonqwt/default.nix new file mode 100644 index 000000000000..1eb3e3e2aedc --- /dev/null +++ b/pkgs/development/python-modules/pythonqwt/default.nix @@ -0,0 +1,60 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + numpy, + qtpy, + + # tests + pyqt6, + qt6, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "pythonqwt"; + version = "0.12.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "PlotPyStack"; + repo = "PythonQwt"; + rev = "refs/tags/v${version}"; + hash = "sha256-Am7XYumq9PAOmT2ZTC+AAE4VM6/yNF11WLXoTFSbDh4="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + qtpy + numpy + ]; + nativeCheckInputs = [ + pytestCheckHook + # Not propagating this, to allow one to choose to either choose a pyqt / + # pyside implementation + pyqt6 + ]; + + preCheck = '' + export QT_PLUGIN_PATH="${lib.getBin qt6.qtbase}/${qt6.qtbase.qtPluginPrefix}" + export QT_QPA_PLATFORM=offscreen + ''; + + pythonImportsCheck = [ "qwt" ]; + + meta = { + description = "Qt plotting widgets for Python (pure Python reimplementation of Qwt C++ library)"; + homepage = "https://github.com/PlotPyStack/PythonQwt"; + changelog = "https://github.com/PlotPyStack/PythonQwt/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.lgpl21Only; + maintainers = with lib.maintainers; [ doronbehar ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 32b58b06c195..2e8daa5361b8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13320,6 +13320,8 @@ self: super: with self; { qmk-dotty-dict = callPackage ../development/python-modules/qmk-dotty-dict { }; + pythonqwt = callPackage ../development/python-modules/pythonqwt { }; + r2pipe = callPackage ../development/python-modules/r2pipe { }; rachiopy = callPackage ../development/python-modules/rachiopy { };