1{
2 lib,
3 aiohttp,
4 aresponses,
5 buildPythonPackage,
6 fetchFromGitHub,
7 freezegun,
8 netifaces,
9 pytest-asyncio,
10 pytestCheckHook,
11 pythonOlder,
12 urllib3,
13 setuptools,
14 tenacity,
15}:
16
17buildPythonPackage rec {
18 pname = "pydaikin";
19 version = "2.17.0";
20 pyproject = true;
21
22 disabled = pythonOlder "3.11";
23
24 src = fetchFromGitHub {
25 owner = "fredrike";
26 repo = "pydaikin";
27 tag = "v${version}";
28 hash = "sha256-sX+YJ5uYQqVr9QPkx22IlgpI3nCHiN3XzrkUyY7ECDM=";
29 };
30
31 __darwinAllowLocalNetworking = true;
32
33 build-system = [ setuptools ];
34
35 dependencies = [
36 aiohttp
37 netifaces
38 urllib3
39 tenacity
40 ];
41
42 nativeCheckInputs = [
43 aresponses
44 freezegun
45 pytest-asyncio
46 pytestCheckHook
47 ];
48
49 disabledTests = [
50 # Failed: async def functions are not natively supported.
51 "test_power_sensors"
52 "test_device_factory"
53 ];
54
55 pythonImportsCheck = [ "pydaikin" ];
56
57 meta = with lib; {
58 description = "Python Daikin HVAC appliances interface";
59 homepage = "https://github.com/fredrike/pydaikin";
60 changelog = "https://github.com/fredrike/pydaikin/releases/tag/${src.tag}";
61 license = with licenses; [ gpl3Only ];
62 maintainers = with maintainers; [ fab ];
63 mainProgram = "pydaikin";
64 };
65}