nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 aiocoap,
5 aiohappyeyeballs,
6 async-interrupt,
7 bleak,
8 bleak-retry-connector,
9 chacha20poly1305,
10 chacha20poly1305-reuseable,
11 commentjson,
12 cryptography,
13 fetchFromGitHub,
14 orjson,
15 poetry-core,
16 pytest-aiohttp,
17 pytestCheckHook,
18 zeroconf,
19}:
20
21buildPythonPackage rec {
22 pname = "aiohomekit";
23 version = "3.2.20";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "Jc2k";
28 repo = "aiohomekit";
29 tag = version;
30 hash = "sha256-iVLW7oaYJ2imVs0aMUpGbiCyE86JOaHZJr86ZGRkfLM=";
31 };
32
33 build-system = [ poetry-core ];
34
35 dependencies = [
36 aiocoap
37 aiohappyeyeballs
38 async-interrupt
39 bleak
40 bleak-retry-connector
41 chacha20poly1305
42 chacha20poly1305-reuseable
43 commentjson
44 cryptography
45 orjson
46 zeroconf
47 ];
48
49 nativeCheckInputs = [
50 pytest-aiohttp
51 pytestCheckHook
52 ];
53
54 disabledTestPaths = [
55 # Tests require network access
56 "tests/test_ip_pairing.py"
57 ];
58
59 pythonImportsCheck = [ "aiohomekit" ];
60
61 meta = {
62 description = "Python module that implements the HomeKit protocol";
63 longDescription = ''
64 This Python library implements the HomeKit protocol for controlling
65 Homekit accessories.
66 '';
67 homepage = "https://github.com/Jc2k/aiohomekit";
68 changelog = "https://github.com/Jc2k/aiohomekit/releases/tag/${src.tag}";
69 license = lib.licenses.asl20;
70 maintainers = with lib.maintainers; [ fab ];
71 mainProgram = "aiohomekitctl";
72 };
73}