From a11e8d076eeaca3edcff35e1df1840564c377c9d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 27 Sep 2025 23:29:04 +0200 Subject: [PATCH 1/2] python313Packages.busylight-core: init at 0.15.2 Library for interacting programmatically with USB-connected LED lights https://github.com/JnyJny/busylight-core --- .../python-modules/busylight-core/default.nix | 52 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/python-modules/busylight-core/default.nix diff --git a/pkgs/development/python-modules/busylight-core/default.nix b/pkgs/development/python-modules/busylight-core/default.nix new file mode 100644 index 000000000000..def730c0f6b9 --- /dev/null +++ b/pkgs/development/python-modules/busylight-core/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + hidapi, + loguru, + pyserial, + pytest-asyncio, + pytestCheckHook, + uv-build, +}: + +buildPythonPackage rec { + pname = "busylight-core"; + version = "0.15.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "JnyJny"; + repo = "busylight-core"; + tag = "v${version}"; + hash = "sha256-r7mAKD/uodY5RRklYL6u2HTdcU+rt6taTpBkTB/Sv9Y="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "uv_build>=0.7.19,<0.8" "uv_build" + ''; + + build-system = [ uv-build ]; + + dependencies = [ + hidapi + loguru + pyserial + ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "busylight_core" ]; + + meta = { + description = "Library for interacting programmatically with USB-connected LED lights"; + homepage = "https://github.com/JnyJny/busylight-core"; + changelog = "https://github.com/JnyJny/busylight-core/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 57a9b0966e50..e02b7b88a96c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2252,6 +2252,8 @@ self: super: with self; { bundlewrap-teamvault = callPackage ../development/python-modules/bundlewrap-teamvault { }; + busylight-core = callPackage ../development/python-modules/busylight-core { }; + busylight-for-humans = callPackage ../development/python-modules/busylight-for-humans { }; busypie = callPackage ../development/python-modules/busypie { }; From 385f435cc220c2d8c58e854dc4f19c2e8902d99e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 27 Sep 2025 23:44:54 +0200 Subject: [PATCH 2/2] python313Packages.busylight-for-humans: 0.37.0 -> 0.45.2 Changelog: https://github.com/JnyJny/busylight/releases/tag/v0.45.2 --- .../busylight-for-humans/default.nix | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/busylight-for-humans/default.nix b/pkgs/development/python-modules/busylight-for-humans/default.nix index 86fd257dc232..4f43864ea06f 100644 --- a/pkgs/development/python-modules/busylight-for-humans/default.nix +++ b/pkgs/development/python-modules/busylight-for-humans/default.nix @@ -2,39 +2,39 @@ lib, bitvector-for-humans, buildPythonPackage, - fetchFromGitHub, + busylight-core, fastapi, + fetchFromGitHub, + hatchling, hidapi, + httpx, loguru, - poetry-core, pyserial, pytest-mock, pytestCheckHook, - pythonOlder, typer, + udevCheckHook, uvicorn, webcolors, - udevCheckHook, }: buildPythonPackage rec { pname = "busylight-for-humans"; - version = "0.37.0"; + version = "0.45.2"; pyproject = true; - disabled = pythonOlder "3.9"; - src = fetchFromGitHub { owner = "JnyJny"; repo = "busylight"; tag = "v${version}"; - hash = "sha256-uKuQy4ce6WTTpprAbQ6QE7WlotMlVacaDZ+dsvY1N58="; + hash = "sha256-G+l+jkHZzz3tX1CcC7Cq1iCFZPbeQ6CI4xCMkTWA5EE="; }; - build-system = [ poetry-core ]; + build-system = [ hatchling ]; dependencies = [ bitvector-for-humans + busylight-core hidapi loguru pyserial @@ -50,10 +50,12 @@ buildPythonPackage rec { }; nativeCheckInputs = [ + httpx pytestCheckHook pytest-mock udevCheckHook - ]; + ] + ++ lib.flatten (builtins.attrValues optional-dependencies); disabledTestPaths = [ "tests/test_pydantic_models.py" ];