1{
2 lib,
3 aiofiles,
4 aiohttp,
5 aioresponses,
6 aiozoneinfo,
7 asyncclick,
8 buildPythonPackage,
9 debugpy,
10 fetchFromGitHub,
11 hatchling,
12 pytest-asyncio,
13 pytest-freezer,
14 pytestCheckHook,
15 pythonOlder,
16 pyyaml,
17 syrupy,
18 voluptuous,
19}:
20
21buildPythonPackage rec {
22 pname = "evohome-async";
23 version = "1.0.5";
24 pyproject = true;
25
26 disabled = pythonOlder "3.12";
27
28 src = fetchFromGitHub {
29 owner = "zxdavb";
30 repo = "evohome-async";
31 tag = version;
32 hash = "sha256-4eV050Yikr+5ZIj1v11cPQQ1pAlQYckbZXVFHHfYmpA=";
33 };
34
35 build-system = [ hatchling ];
36
37 dependencies = [
38 aiohttp
39 aiozoneinfo
40 voluptuous
41 ];
42
43 optional-dependencies = {
44 cli = [
45 aiofiles
46 asyncclick
47 debugpy
48 ];
49 };
50
51 nativeCheckInputs = [
52 aioresponses
53 pytest-asyncio
54 pytest-freezer
55 pytestCheckHook
56 pyyaml
57 syrupy
58 ]
59 ++ optional-dependencies.cli;
60
61 pythonImportsCheck = [ "evohomeasync2" ];
62
63 meta = with lib; {
64 description = "Python client for connecting to Honeywell's TCC RESTful API";
65 homepage = "https://github.com/zxdavb/evohome-async";
66 changelog = "https://github.com/zxdavb/evohome-async/releases/tag/${version}";
67 license = licenses.asl20;
68 maintainers = with maintainers; [ fab ];
69 mainProgram = "evo-client";
70 };
71}