1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, cryptography
5, ifaddr
6, voluptuous
7, pyyaml
8, pytest-asyncio
9, pytestCheckHook
10, pythonOlder
11}:
12
13buildPythonPackage rec {
14 pname = "xknx";
15 version = "1.2.1";
16 format = "setuptools";
17
18 disabled = pythonOlder "3.8";
19
20 src = fetchFromGitHub {
21 owner = "XKNX";
22 repo = pname;
23 rev = "refs/tags/${version}";
24 hash = "sha256-5uRPMu9qZ0ofMdgk8d1IpKjHjnEP+zhWs+EDQx9wk6U=";
25 };
26
27 propagatedBuildInputs = [
28 cryptography
29 ifaddr
30 ];
31
32 checkInputs = [
33 pytest-asyncio
34 pytestCheckHook
35 ];
36
37 pythonImportsCheck = [
38 "xknx"
39 ];
40
41 disabledTests = [
42 # Test requires network access
43 "test_scan_timeout"
44 "test_start_secure_routing_knx_keys"
45 "test_start_secure_routing_manual"
46 ];
47
48 meta = with lib; {
49 description = "KNX Library Written in Python";
50 longDescription = ''
51 XKNX is an asynchronous Python library for reading and writing KNX/IP
52 packets. It provides support for KNX/IP routing and tunneling devices.
53 '';
54 homepage = "https://github.com/XKNX/xknx";
55 license = with licenses; [ mit ];
56 maintainers = with maintainers; [ fab ];
57 platforms = platforms.linux;
58 };
59}