summary refs log tree commit diff
path: root/pkgs/development/python-modules/pynput/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/pynput/default.nix')
-rw-r--r--pkgs/development/python-modules/pynput/default.nix57
1 files changed, 48 insertions, 9 deletions
diff --git a/pkgs/development/python-modules/pynput/default.nix b/pkgs/development/python-modules/pynput/default.nix
index 394c6f87b65..88c46532d99 100644
--- a/pkgs/development/python-modules/pynput/default.nix
+++ b/pkgs/development/python-modules/pynput/default.nix
@@ -1,22 +1,61 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, sphinx, setuptools-lint, xlib, evdev }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+
+# build-system
+, setuptools
+, setuptools-lint
+, sphinx
+
+# dependencies
+, xlib
+, evdev
+, darwin
+, six
+
+ # tests
+, unittestCheckHook
+ }:
 
 buildPythonPackage rec {
   pname = "pynput";
   version = "1.7.6";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "3a5726546da54116b687785d38b1db56997ce1d28e53e8d22fc656d8b92e533c";
+  src = fetchFromGitHub {
+    owner = "moses-palmer";
+    repo = "pynput";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gRq4LS9NvPL98N0Jk09Z0GfoHS09o3zM284BEWS+NW4=";
   };
 
-  nativeBuildInputs = [ sphinx ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'sphinx >=1.3.1'" ""
+  '';
 
-  propagatedBuildInputs = [ setuptools-lint xlib ]
-  ++ lib.optionals stdenv.isLinux [
-    evdev
+  nativeBuildInputs = [
+    setuptools
+    setuptools-lint
+    sphinx
   ];
 
-  doCheck = false;
+  propagatedBuildInputs = [
+    six
+  ] ++ lib.optionals stdenv.isLinux [
+    evdev
+    xlib
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+    ApplicationServices
+    Quartz
+  ]);
+
+  doCheck = false; # requires running X server
+
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;