From 81e1f42ca5e68c18b7b4408fe3d9afbab97280c5 Mon Sep 17 00:00:00 2001 From: Florian Agbuya Date: Thu, 23 Nov 2023 10:45:13 +0800 Subject: [PATCH] linien: init at 1.0.0 --- pkgs/by-name/li/linien-gui/package.nix | 47 ++++++++++++++++ .../python-modules/linien-client/default.nix | 41 ++++++++++++++ .../python-modules/linien-common/default.nix | 53 +++++++++++++++++++ .../python-modules/linien-common/tests.nix | 26 +++++++++ pkgs/top-level/python-packages.nix | 4 ++ 5 files changed, 171 insertions(+) create mode 100644 pkgs/by-name/li/linien-gui/package.nix create mode 100644 pkgs/development/python-modules/linien-client/default.nix create mode 100644 pkgs/development/python-modules/linien-common/default.nix create mode 100644 pkgs/development/python-modules/linien-common/tests.nix diff --git a/pkgs/by-name/li/linien-gui/package.nix b/pkgs/by-name/li/linien-gui/package.nix new file mode 100644 index 000000000000..ba6f6d6b5893 --- /dev/null +++ b/pkgs/by-name/li/linien-gui/package.nix @@ -0,0 +1,47 @@ +{ lib +, python3 +, qt5 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "linien-gui"; + pyproject = true; + + inherit (python3.pkgs.linien-common) src version; + + sourceRoot = "source/linien-gui"; + + nativeBuildInputs = with python3.pkgs; [ + setuptools + ] ++ [ + qt5.wrapQtAppsHook + ]; + + # Makes qt-wayland appear in the qt paths injected by the wrapper - helps users + # with `QT_QPA_PLATFORM=wayland` in their environment. + buildInputs = [ + qt5.qtwayland + ]; + + propagatedBuildInputs = with python3.pkgs; [ + appdirs + click + pyqtgraph + pyqt5 + superqt + linien-client + ]; + + dontWrapQtApps = true; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Graphical user interface of the Linien spectroscopy lock application"; + homepage = "https://github.com/linien-org/linien/tree/develop/linien-gui"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fsagbuya doronbehar ]; + }; +} diff --git a/pkgs/development/python-modules/linien-client/default.nix b/pkgs/development/python-modules/linien-client/default.nix new file mode 100644 index 000000000000..0cbd9b2d9adb --- /dev/null +++ b/pkgs/development/python-modules/linien-client/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, linien-common +, setuptools +, fabric +, typing-extensions +, numpy +, scipy +}: + +buildPythonPackage rec { + pname = "linien-client"; + pyproject = true; + + inherit (linien-common) src version; + + sourceRoot = "source/linien-client"; + + preBuild = '' + export HOME=$(mktemp -d) + ''; + + nativeBuildInputs = [ setuptools ]; + + propagatedBuildInputs = [ + fabric + typing-extensions + numpy + scipy + linien-common + ]; + + pythonImportsCheck = [ "linien_client" ]; + + meta = with lib; { + description = "Client components of the Linien spectroscopy lock application"; + homepage = "https://github.com/linien-org/linien/tree/develop/linien-client"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fsagbuya doronbehar ]; + }; +} diff --git a/pkgs/development/python-modules/linien-common/default.nix b/pkgs/development/python-modules/linien-common/default.nix new file mode 100644 index 000000000000..23d49ba3605f --- /dev/null +++ b/pkgs/development/python-modules/linien-common/default.nix @@ -0,0 +1,53 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, importlib-metadata +, numpy +, rpyc +, scipy +, appdirs +, callPackage +}: + +buildPythonPackage rec { + pname = "linien-common"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "linien-org"; + repo = "linien"; + rev = "v${version}"; + hash = "sha256-BMYFi1HsNKWHmYdrnX/mAehke7UxQZlruFmpaAvxWvQ="; + }; + + sourceRoot = "source/linien-common"; + + preBuild = '' + export HOME=$(mktemp -d) + ''; + + nativeBuildInputs = [ setuptools ]; + + propagatedBuildInputs = [ + importlib-metadata + numpy + rpyc + scipy + appdirs + ]; + + pythonImportsCheck = [ "linien_common" ]; + + passthru.tests = { + pytest = callPackage ./tests.nix { }; + }; + + meta = with lib; { + description = "Shared components of the Linien spectroscopy lock application"; + homepage = "https://github.com/linien-org/linien/tree/develop/linien-common"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fsagbuya doronbehar ]; + }; +} diff --git a/pkgs/development/python-modules/linien-common/tests.nix b/pkgs/development/python-modules/linien-common/tests.nix new file mode 100644 index 000000000000..7237548f2da3 --- /dev/null +++ b/pkgs/development/python-modules/linien-common/tests.nix @@ -0,0 +1,26 @@ +{ lib +, buildPythonPackage +, linien-common +, linien-client +, pytestCheckHook +}: + +buildPythonPackage { + pname = "linien-tests"; + inherit (linien-common) version src; + format = "other"; + pyproject = false; + + dontBuild = true; + dontInstall = true; + + nativeCheckInputs = [ + linien-common + linien-client + pytestCheckHook + ]; + + preCheck = '' + export HOME=$(mktemp -d) + ''; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4c088f84d056..6a9edbd62bab 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6441,6 +6441,10 @@ self: super: with self; { lingua = callPackage ../development/python-modules/lingua { }; + linien-client = callPackage ../development/python-modules/linien-client { }; + + linien-common = callPackage ../development/python-modules/linien-common { }; + linkify-it-py = callPackage ../development/python-modules/linkify-it-py { }; linknlink = callPackage ../development/python-modules/linknlink { };