1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 setuptools,
7 aiohttp,
8 xmltodict,
9 python-socketio-v4,
10 websocket-client,
11}:
12
13buildPythonPackage rec {
14 pname = "pycontrol4";
15 version = "1.5.0";
16
17 disabled = pythonOlder "3.6";
18
19 pyproject = true;
20
21 src = fetchFromGitHub {
22 owner = "lawtancool";
23 repo = "pyControl4";
24 tag = "v${version}";
25 hash = "sha256-r90v9vy8avvEbNKrzZgYtDS5Z5hV66Fd9fF9XJ4r7B4=";
26 };
27
28 build-system = [ setuptools ];
29
30 dependencies = [
31 aiohttp
32 xmltodict
33 python-socketio-v4
34 websocket-client
35 ];
36
37 # tests access network
38 doCheck = false;
39
40 pythonImportsCheck = [
41 "pyControl4.account"
42 "pyControl4.alarm"
43 "pyControl4.director"
44 "pyControl4.light"
45 ];
46
47 meta = with lib; {
48 changelog = "https://github.com/lawtancool/pyControl4/releases/tag/v${version}";
49 description = "Python 3 asyncio package for interacting with Control4 systems";
50 homepage = "https://github.com/lawtancool/pyControl4";
51 license = licenses.asl20;
52 maintainers = with maintainers; [ dotlambda ];
53 };
54}