1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 fetchFromGitHub,
6 fetchpatch2,
7 netifaces,
8 poetry-core,
9 python-engineio-v3,
10 python-socketio-v4,
11 pythonOlder,
12}:
13
14buildPythonPackage rec {
15 pname = "sisyphus-control";
16 version = "3.1.4";
17 pyproject = true;
18
19 disabled = pythonOlder "3.8";
20
21 src = fetchFromGitHub {
22 owner = "jkeljo";
23 repo = "sisyphus-control";
24 tag = "v${version}";
25 hash = "sha256-1/trJ/mfiXljNt7ZIBwQ45mIBbqg68e29lvVsPDPzoU=";
26 };
27
28 patches = [
29 # https://github.com/jkeljo/sisyphus-control/pull/9
30 (fetchpatch2 {
31 name = "specify-build-system.patch";
32 url = "https://github.com/jkeljo/sisyphus-control/commit/dd48079e03a53cdb3af721de0d307209286c38f0.patch";
33 hash = "sha256-573YLPrNbbMXSrZ3gK8cmHmuk2+UeggcKL/+eo4pgrs=";
34 })
35 ];
36
37 build-system = [ poetry-core ];
38
39 dependencies = [
40 aiohttp
41 netifaces
42 python-engineio-v3
43 python-socketio-v4
44 ];
45
46 # Module has no tests
47 doCheck = false;
48
49 pythonImportsCheck = [ "sisyphus_control" ];
50
51 meta = with lib; {
52 description = "Control your Sisyphus Kinetic Art Table";
53 homepage = "https://github.com/jkeljo/sisyphus-control";
54 changelog = "https://github.com/jkeljo/sisyphus-control/blob/${src.rev}/CHANGELOG.rst";
55 license = licenses.mit;
56 maintainers = with maintainers; [ fab ];
57 };
58}