From ae62462a02246f7dc1e8b1974304e0b09dcded48 Mon Sep 17 00:00:00 2001 From: Ryan Grant Date: Thu, 22 Jan 2026 19:43:49 -0800 Subject: [PATCH 1/3] maintainers: add theconcierge --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 68df7f46738a..f3ae7970766b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -26189,6 +26189,12 @@ githubId = 18369995; keys = [ { fingerprint = "3D8C A43C FBA2 5D28 0196 19F0 AB11 0475 B417 291D"; } ]; }; + theconcierge = { + name = "TheConcierge"; + email = "therealconcierge@proton.me"; + github = "TheConcierge"; + githubId = 10949861; + }; thedavidmeister = { email = "thedavidmeister@gmail.com"; github = "thedavidmeister"; From e0c1a77f1fc1878bd044225431bffa09a4860123 Mon Sep 17 00:00:00 2001 From: Ryan Grant Date: Thu, 22 Jan 2026 19:52:31 -0800 Subject: [PATCH 2/3] python3Packages.gpiodevice: init at 0.0.4 --- .../python-modules/gpiodevice/default.nix | 58 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 60 insertions(+) create mode 100644 pkgs/development/python-modules/gpiodevice/default.nix diff --git a/pkgs/development/python-modules/gpiodevice/default.nix b/pkgs/development/python-modules/gpiodevice/default.nix new file mode 100644 index 000000000000..8f29837fb3e8 --- /dev/null +++ b/pkgs/development/python-modules/gpiodevice/default.nix @@ -0,0 +1,58 @@ +{ + lib, + python, + buildPythonPackage, + pytestCheckHook, + fetchFromGitHub, + hatchling, + hatch-fancy-pypi-readme, + libgpiod, + mock, +}: +buildPythonPackage (finalAttrs: { + pname = "gpiodevice"; + version = "0.0.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pimoroni"; + repo = "gpiodevice-python"; + tag = "v${finalAttrs.version}"; + hash = "sha256-1vZHRCHUmG+t0TYxYzc2qwElKrcLa0WmQ+FI5GTN1A8="; + }; + + build-system = [ + hatchling + hatch-fancy-pypi-readme + ]; + + dependencies = [ + libgpiod + ]; + + nativeCheckInputs = [ + mock + pytestCheckHook + ]; + + pythonImportsCheck = [ "gpiodevice" ]; + + # The build explicitly copies over these docs files, which cause collisions with other pimoroni repos. + # Preserve the files (especially license), but move elsewhere. + postInstall = '' + mkdir -p $out/share/doc/${finalAttrs.pname} + mkdir -p $out/share/licenses/${finalAttrs.pname} + + mv "$out/${python.sitePackages}/LICENSE" $out/share/licenses/${finalAttrs.pname} + mv "$out/${python.sitePackages}/README.md" $out/share/doc/${finalAttrs.pname}/ + mv "$out/${python.sitePackages}/CHANGELOG.md" $out/share/doc/${finalAttrs.pname}/ + ''; + + meta = { + description = "Helper library for working with Linux gpiochip devices"; + homepage = "https://github.com/pimoroni/gpiodevice-python"; + changelog = "https://github.com/pimoroni/gpiodevice-python/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ theconcierge ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1ed705affa04..30976848f3e8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6478,6 +6478,8 @@ self: super: with self; { gpib-ctypes = callPackage ../development/python-modules/gpib-ctypes { }; + gpiodevice = callPackage ../development/python-modules/gpiodevice { }; + gpiozero = callPackage ../development/python-modules/gpiozero { }; gprof2dot = callPackage ../development/python-modules/gprof2dot { inherit (pkgs) graphviz; }; From 834df9e4742b3de8adb31310ade7a7ad1bc91533 Mon Sep 17 00:00:00 2001 From: Ryan Grant Date: Thu, 22 Jan 2026 20:04:05 -0800 Subject: [PATCH 3/3] python3Packages.inky: init at 2.3.0 --- .../python-modules/inky/default.nix | 64 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 66 insertions(+) create mode 100644 pkgs/development/python-modules/inky/default.nix diff --git a/pkgs/development/python-modules/inky/default.nix b/pkgs/development/python-modules/inky/default.nix new file mode 100644 index 000000000000..ee90cb351eb5 --- /dev/null +++ b/pkgs/development/python-modules/inky/default.nix @@ -0,0 +1,64 @@ +{ + lib, + python, + buildPythonPackage, + pytestCheckHook, + fetchFromGitHub, + hatchling, + hatch-fancy-pypi-readme, + hatch-requirements-txt, + numpy, + pillow, + smbus2, + spidev, + gpiodevice, +}: +buildPythonPackage (finalAttrs: { + pname = "inky"; + version = "2.3.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pimoroni"; + repo = "inky"; + tag = "v${finalAttrs.version}"; + hash = "sha256-1z2AZr6mlrl1O071iWS+tbWopUEUzLZe/QTmvl2atxQ="; + }; + + build-system = [ + hatchling + hatch-fancy-pypi-readme + hatch-requirements-txt + ]; + + dependencies = [ + numpy + pillow + smbus2 + spidev + gpiodevice + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "inky" ]; + + # The build explicitly copies over these docs files, which cause collisions with other pimoroni repos. + # Preserve the files (especially license), but move elsewhere. + postInstall = '' + mkdir -p $out/share/doc/${finalAttrs.pname} + mkdir -p $out/share/licenses/${finalAttrs.pname} + + mv "$out/${python.sitePackages}/LICENSE" $out/share/licenses/${finalAttrs.pname}/ + mv "$out/${python.sitePackages}/README.md" $out/share/doc/${finalAttrs.pname}/ + mv "$out/${python.sitePackages}/CHANGELOG.md" $out/share/doc/${finalAttrs.pname}/ + ''; + + meta = { + description = "Python library for Inky pHAT, Inky wHAT and Inky Impression e-paper displays for Raspberry Pi."; + homepage = "https://github.com/pimoroni/inky"; + changelog = "https://github.com/pimoroni/inky/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ theconcierge ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 30976848f3e8..afe680b80f5e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7390,6 +7390,8 @@ self: super: with self; { inkex = callPackage ../development/python-modules/inkex { }; + inky = callPackage ../development/python-modules/inky { }; + inline-snapshot = callPackage ../development/python-modules/inline-snapshot { }; inotify = callPackage ../development/python-modules/inotify { };