Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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 pyyaml,
19 requests,
20 requests-mock,
21 responses,
22 setuptools,
23}:
24
25buildPythonPackage rec {
26 pname = "pyrainbird";
27 version = "6.0.2";
28 pyproject = true;
29
30 src = fetchFromGitHub {
31 owner = "allenporter";
32 repo = "pyrainbird";
33 tag = version;
34 hash = "sha256-CcoZZ60PItqy0bCc36WfyNF9Fc28aHwQ6hhnY41lBNg=";
35 };
36
37 build-system = [ setuptools ];
38
39 dependencies = [
40 aiohttp-retry
41 ical
42 mashumaro
43 pycryptodome
44 python-dateutil
45 pyyaml
46 requests
47 ];
48
49 __darwinAllowLocalNetworking = true;
50
51 nativeCheckInputs = [
52 freezegun
53 parameterized
54 (pytest-aiohttp.override { pytest-asyncio = pytest-asyncio_0; })
55 pytest-asyncio_0
56 pytest-cov-stub
57 pytest-golden
58 pytest-mock
59 pytestCheckHook
60 requests-mock
61 responses
62 ];
63
64 pythonImportsCheck = [ "pyrainbird" ];
65
66 meta = {
67 description = "Module to interact with Rainbird controllers";
68 homepage = "https://github.com/allenporter/pyrainbird";
69 changelog = "https://github.com/allenporter/pyrainbird/releases/tag/${version}";
70 license = lib.licenses.mit;
71 maintainers = with lib.maintainers; [ fab ];
72 };
73}