1{ lib
2, buildPythonPackage
3, aiocoap
4, bleak
5, bleak-retry-connector
6, chacha20poly1305
7, chacha20poly1305-reuseable
8, commentjson
9, cryptography
10, fetchFromGitHub
11, orjson
12, poetry-core
13, pytest-aiohttp
14, pytestCheckHook
15, pythonOlder
16, zeroconf
17}:
18
19buildPythonPackage rec {
20 pname = "aiohomekit";
21 version = "2.3.0";
22 format = "pyproject";
23
24 disabled = pythonOlder "3.9";
25
26 src = fetchFromGitHub {
27 owner = "Jc2k";
28 repo = pname;
29 rev = "refs/tags/${version}";
30 hash = "sha256-dX3yz7b3fejLFtlk5CKBQzk+o9FpLtxyZYt5SaybBJM=";
31 };
32
33 nativeBuildInputs = [
34 poetry-core
35 ];
36
37 propagatedBuildInputs = [
38 aiocoap
39 bleak
40 bleak-retry-connector
41 chacha20poly1305
42 chacha20poly1305-reuseable
43 commentjson
44 cryptography
45 orjson
46 zeroconf
47 ];
48
49 doCheck = lib.versionAtLeast pytest-aiohttp.version "1.0.0";
50
51 checkInputs = [
52 pytest-aiohttp
53 pytestCheckHook
54 ];
55
56 disabledTestPaths = [
57 # Tests require network access
58 "tests/test_ip_pairing.py"
59 ];
60
61 pythonImportsCheck = [
62 "aiohomekit"
63 ];
64
65 meta = with lib; {
66 description = "Python module that implements the HomeKit protocol";
67 longDescription = ''
68 This Python library implements the HomeKit protocol for controlling
69 Homekit accessories.
70 '';
71 homepage = "https://github.com/Jc2k/aiohomekit";
72 license = with licenses; [ asl20 ];
73 maintainers = with maintainers; [ fab ];
74 };
75}