1{
2 lib,
3 aiohttp-retry,
4 buildPythonPackage,
5 fetchFromGitHub,
6 freezegun,
7 ical,
8 mashumaro,
9 parameterized,
10 pycryptodome,
11 pytest-aiohttp,
12 pytest-asyncio_0,
13 pytest-cov-stub,
14 pytest-golden,
15 pytest-mock,
16 pytestCheckHook,
17 python-dateutil,
18 pythonOlder,
19 pyyaml,
20 requests,
21 requests-mock,
22 responses,
23 setuptools,
24}:
25
26buildPythonPackage rec {
27 pname = "pyrainbird";
28 version = "6.0.2";
29 pyproject = true;
30
31 disabled = pythonOlder "3.10";
32
33 src = fetchFromGitHub {
34 owner = "allenporter";
35 repo = "pyrainbird";
36 tag = version;
37 hash = "sha256-CcoZZ60PItqy0bCc36WfyNF9Fc28aHwQ6hhnY41lBNg=";
38 };
39
40 build-system = [ setuptools ];
41
42 dependencies = [
43 aiohttp-retry
44 ical
45 mashumaro
46 pycryptodome
47 python-dateutil
48 pyyaml
49 requests
50 ];
51
52 __darwinAllowLocalNetworking = true;
53
54 nativeCheckInputs = [
55 freezegun
56 parameterized
57 (pytest-aiohttp.override { pytest-asyncio = pytest-asyncio_0; })
58 pytest-asyncio_0
59 pytest-cov-stub
60 pytest-golden
61 pytest-mock
62 pytestCheckHook
63 requests-mock
64 responses
65 ];
66
67 pythonImportsCheck = [ "pyrainbird" ];
68
69 meta = with lib; {
70 description = "Module to interact with Rainbird controllers";
71 homepage = "https://github.com/allenporter/pyrainbird";
72 changelog = "https://github.com/allenporter/pyrainbird/releases/tag/${version}";
73 license = licenses.mit;
74 maintainers = with maintainers; [ fab ];
75 };
76}