1{
2 lib,
3 aiohttp,
4 aresponses,
5 async-modbus,
6 async-timeout,
7 asyncclick,
8 buildPythonPackage,
9 construct,
10 exceptiongroup,
11 fetchFromGitHub,
12 pandas,
13 pytest-asyncio,
14 pytestCheckHook,
15 python-slugify,
16 pythonOlder,
17 setuptools,
18 tenacity,
19}:
20
21buildPythonPackage rec {
22 pname = "nibe";
23 version = "2.9.0";
24 pyproject = true;
25
26 disabled = pythonOlder "3.9";
27
28 src = fetchFromGitHub {
29 owner = "yozik04";
30 repo = "nibe";
31 rev = "refs/tags/${version}";
32 hash = "sha256-j8P/lhBjlsmnOc4Cv/a2Hdf2EPO8CEpT4IOQHtiBgQA=";
33 };
34
35 nativeBuildInputs = [ setuptools ];
36
37 propagatedBuildInputs = [
38 async-modbus
39 async-timeout
40 construct
41 exceptiongroup
42 tenacity
43 ];
44
45 passthru.optional-dependencies = {
46 convert = [
47 pandas
48 python-slugify
49 ];
50 cli = [ asyncclick ];
51 };
52
53 nativeCheckInputs = [
54 aresponses
55 pytest-asyncio
56 pytestCheckHook
57 ];
58
59 pythonImportsCheck = [ "nibe" ];
60
61 meta = with lib; {
62 description = "Library for the communication with Nibe heatpumps";
63 homepage = "https://github.com/yozik04/nibe";
64 changelog = "https://github.com/yozik04/nibe/releases/tag/${version}";
65 license = with licenses; [ gpl3Plus ];
66 maintainers = with maintainers; [ fab ];
67 };
68}