1{
2 lib,
3 buildPythonPackage,
4 pythonAtLeast,
5 fetchFromGitHub,
6 fetchpatch,
7 libuv,
8}:
9
10buildPythonPackage rec {
11 pname = "pyuv";
12 version = "1.4.0";
13 format = "setuptools";
14 disabled = pythonAtLeast "3.12";
15
16 src = fetchFromGitHub {
17 owner = "saghul";
18 repo = "pyuv";
19 rev = "pyuv-${version}";
20 sha256 = "1wiwwdylz66lfsjh6p4iv7pfhzvnhwjk332625njizfhz3gq9fwr";
21 };
22
23 patches = [
24 (fetchpatch {
25 name = "fix-build-with-python3.10.patch";
26 url = "https://github.com/saghul/pyuv/commit/8bddcc27052017b5b9cb89c24dbfdf06737b0dd3.patch";
27 hash = "sha256-J/3ky64Ff+gYpN3ksFLNuZ5xgPbBkyOl4LTY6fiHAgk=";
28 })
29 (fetchpatch {
30 name = "fix-build-with-python3.11.patch";
31 url = "https://github.com/saghul/pyuv/commit/2a3d42d44c6315ebd73899a35118380d2d5979b5.patch";
32 hash = "sha256-CQZexd6EjadCB7KyxeZKM24zrD9rXuNv4oA+Tb2nsdw=";
33 })
34 ];
35
36 setupPyBuildFlags = [ "--use-system-libuv" ];
37
38 buildInputs = [ libuv ];
39
40 doCheck = false; # doesn't work in sandbox
41
42 pythonImportsCheck = [ "pyuv" ];
43
44 meta = with lib; {
45 description = "Python interface for libuv";
46 homepage = "https://github.com/saghul/pyuv";
47 license = licenses.mit;
48 maintainers = with maintainers; [ dotlambda ];
49 };
50}