1{
2 lib,
3 aiohttp,
4 aioresponses,
5 apischema,
6 buildPythonPackage,
7 fetchFromGitHub,
8 freezegun,
9 gql,
10 graphql-core,
11 pytest-asyncio,
12 pytestCheckHook,
13 pythonOlder,
14 requests,
15 setuptools,
16 setuptools-scm,
17}:
18
19buildPythonPackage rec {
20 pname = "pydrawise";
21 version = "2025.9.0";
22 pyproject = true;
23
24 disabled = pythonOlder "3.11";
25
26 src = fetchFromGitHub {
27 owner = "dknowles2";
28 repo = "pydrawise";
29 tag = version;
30 hash = "sha256-eHy3pdzgN5CvKfsoa5ZdT9lor4AiZr8K1g/8qyzP3eo=";
31 };
32
33 build-system = [
34 setuptools
35 setuptools-scm
36 ];
37
38 dependencies = [
39 aiohttp
40 apischema
41 gql
42 graphql-core
43 requests
44 ];
45
46 nativeCheckInputs = [
47 aioresponses
48 freezegun
49 pytest-asyncio
50 pytestCheckHook
51 ];
52
53 pythonImportsCheck = [ "pydrawise" ];
54
55 meta = with lib; {
56 description = "Library for interacting with Hydrawise sprinkler controllers through the GraphQL API";
57 homepage = "https://github.com/dknowles2/pydrawise";
58 changelog = "https://github.com/dknowles2/pydrawise/releases/tag/${src.tag}";
59 license = licenses.asl20;
60 maintainers = with maintainers; [ fab ];
61 };
62}