1{ lib
2, buildPythonPackage
3, base36
4, cryptography
5, curve25519-donna
6, ecdsa
7, fetchFromGitHub
8, h11
9, pyqrcode
10, pytest-asyncio
11, pytest-timeout
12, pytestCheckHook
13, pythonOlder
14, zeroconf
15}:
16
17buildPythonPackage rec {
18 pname = "hap-python";
19 version = "4.3.0";
20 disabled = pythonOlder "3.6";
21
22 src = fetchFromGitHub {
23 owner = "ikalchev";
24 repo = "HAP-python";
25 rev = "v${version}";
26 sha256 = "sha256-G4KL6iMeVn/tmvFtFL8vyqHGNfqk6j8iG4tDK9VpCyM=";
27 };
28
29 propagatedBuildInputs = [
30 base36
31 cryptography
32 curve25519-donna
33 ecdsa
34 h11
35 pyqrcode
36 zeroconf
37 ];
38
39 checkInputs = [
40 pytest-asyncio
41 pytest-timeout
42 pytestCheckHook
43 ];
44
45 disabledTestPaths = [
46 # Disable tests requiring network access
47 "tests/test_accessory_driver.py"
48 "tests/test_hap_handler.py"
49 "tests/test_hap_protocol.py"
50 ];
51
52 disabledTests = [
53 "test_persist_and_load"
54 "test_we_can_connect"
55 "test_idle_connection_cleanup"
56 "test_we_can_start_stop"
57 "test_push_event"
58 "test_bridge_run_stop"
59 "test_migration_to_include_client_properties"
60 ];
61
62 pythonImportsCheck = [ "pyhap" ];
63
64 meta = with lib; {
65 homepage = "https://github.com/ikalchev/HAP-python";
66 description = "HomeKit Accessory Protocol implementation in python";
67 license = licenses.asl20;
68 maintainers = with maintainers; [ oro ];
69 };
70}