1{
2 lib,
3 aiohttp,
4 aioresponses,
5 aqipy-atmotech,
6 buildPythonPackage,
7 dacite,
8 fetchFromGitHub,
9 pytest-asyncio,
10 pytest-error-for-skips,
11 pytestCheckHook,
12 pythonOlder,
13 setuptools,
14 syrupy,
15 tenacity,
16}:
17
18buildPythonPackage rec {
19 pname = "nettigo-air-monitor";
20 version = "5.0.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.12";
24
25 src = fetchFromGitHub {
26 owner = "bieniu";
27 repo = "nettigo-air-monitor";
28 tag = version;
29 hash = "sha256-Lgtq+Jho2IkXnVLVlPRxL2hvhB8gW/9Et2yqXOkM8MI=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 aiohttp
36 aqipy-atmotech
37 dacite
38 tenacity
39 ];
40
41 nativeCheckInputs = [
42 aioresponses
43 pytest-asyncio
44 pytest-error-for-skips
45 pytestCheckHook
46 syrupy
47 ];
48
49 disabledTests = [
50 # stuck in epoll
51 "test_retry_fail"
52 "test_retry_success"
53 ];
54
55 pythonImportsCheck = [ "nettigo_air_monitor" ];
56
57 meta = with lib; {
58 description = "Python module to get air quality data from Nettigo Air Monitor devices";
59 homepage = "https://github.com/bieniu/nettigo-air-monitor";
60 changelog = "https://github.com/bieniu/nettigo-air-monitor/releases/tag/${version}";
61 license = with licenses; [ asl20 ];
62 maintainers = with maintainers; [ fab ];
63 };
64}