nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 aiohttp,
5 aioresponses,
6 aiosqlite,
7 async-timeout,
8 attrs,
9 buildPythonPackage,
10 crccheck,
11 cryptography,
12 fetchFromGitHub,
13 filelock,
14 freezegun,
15 frozendict,
16 jsonschema,
17 pyserial-asyncio-fast,
18 pytest-asyncio_0,
19 pytest-timeout,
20 pytestCheckHook,
21 pythonOlder,
22 setuptools,
23 typing-extensions,
24 voluptuous,
25}:
26
27buildPythonPackage rec {
28 pname = "zigpy";
29 version = "0.90.0";
30 pyproject = true;
31
32 src = fetchFromGitHub {
33 owner = "zigpy";
34 repo = "zigpy";
35 tag = version;
36 hash = "sha256-HTQ9azIXnNkNM+s7w0oerDf9+RcCO8DF9+kL9Uzevyk=";
37 };
38
39 postPatch = ''
40 substituteInPlace pyproject.toml \
41 --replace-fail '"setuptools-git-versioning<2"' "" \
42 --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
43 '';
44
45 build-system = [ setuptools ];
46
47 dependencies = [
48 attrs
49 aiohttp
50 aiosqlite
51 crccheck
52 cryptography
53 frozendict
54 jsonschema
55 pyserial-asyncio-fast
56 typing-extensions
57 voluptuous
58 ]
59 ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
60
61 nativeCheckInputs = [
62 aioresponses
63 filelock
64 freezegun
65 pytest-asyncio_0
66 pytest-timeout
67 pytestCheckHook
68 ];
69
70 disabledTests = [
71 # assert quirked.quirk_metadata.quirk_location.endswith("zigpy/tests/test_quirks_v2.py]-line:104") is False
72 "test_quirks_v2"
73 ];
74
75 disabledTestPaths = [
76 # Tests require network access
77 "tests/ota/test_ota_image.py"
78 "tests/ota/test_ota_providers.py"
79 # All tests fail to shutdown thread during teardown
80 "tests/ota/test_ota_matching.py"
81 ];
82
83 pythonImportsCheck = [
84 "zigpy.application"
85 "zigpy.config"
86 "zigpy.exceptions"
87 "zigpy.types"
88 "zigpy.zcl"
89 ];
90
91 meta = {
92 description = "Library implementing a ZigBee stack";
93 homepage = "https://github.com/zigpy/zigpy";
94 changelog = "https://github.com/zigpy/zigpy/releases/tag/${version}";
95 license = lib.licenses.gpl3Plus;
96 maintainers = with lib.maintainers; [ mvnetbiz ];
97 platforms = lib.platforms.linux;
98 };
99}