1{
2 lib,
3 aiohttp,
4 aresponses,
5 async-timeout,
6 awesomeversion,
7 backoff,
8 buildPythonPackage,
9 fetchFromGitHub,
10 mashumaro,
11 multidict,
12 orjson,
13 poetry-core,
14 pytest-asyncio,
15 pytest-cov-stub,
16 pytestCheckHook,
17 pythonOlder,
18 syrupy,
19}:
20
21buildPythonPackage rec {
22 pname = "python-homewizard-energy";
23 version = "9.3.0";
24 pyproject = true;
25
26 disabled = pythonOlder "3.9";
27
28 src = fetchFromGitHub {
29 owner = "DCSBL";
30 repo = "python-homewizard-energy";
31 tag = "v${version}";
32 hash = "sha256-qDLYvFl2gAPNAHJ4uwy0TqzkMUxx9hJ96QwyhbMaLqQ=";
33 };
34
35 postPatch = ''
36 substituteInPlace pyproject.toml \
37 --replace-fail 'version = "0.0.0"' 'version = "${version}"'
38 '';
39
40 build-system = [ poetry-core ];
41
42 dependencies = [
43 aiohttp
44 async-timeout
45 awesomeversion
46 backoff
47 mashumaro
48 multidict
49 orjson
50 ];
51
52 __darwinAllowLocalNetworking = true;
53
54 nativeCheckInputs = [
55 aresponses
56 pytest-asyncio
57 pytest-cov-stub
58 pytestCheckHook
59 syrupy
60 ];
61
62 pythonImportsCheck = [ "homewizard_energy" ];
63
64 meta = with lib; {
65 description = "Library to communicate with HomeWizard Energy devices";
66 homepage = "https://github.com/homewizard/python-homewizard-energy";
67 changelog = "https://github.com/homewizard/python-homewizard-energy/releases/tag/${src.tag}";
68 license = licenses.asl20;
69 maintainers = with maintainers; [ fab ];
70 };
71}