1{
2 lib,
3 aiofiles,
4 aiohttp,
5 buildPythonPackage,
6 defusedxml,
7 fetchFromGitHub,
8 freezegun,
9 jsonpickle,
10 munch,
11 pytest-aiohttp,
12 pytest-asyncio,
13 pytestCheckHook,
14 python-dateutil,
15 pythonOlder,
16 setuptools,
17}:
18
19buildPythonPackage rec {
20 pname = "plugwise";
21 version = "1.7.8";
22 pyproject = true;
23
24 disabled = pythonOlder "3.12";
25
26 src = fetchFromGitHub {
27 owner = "plugwise";
28 repo = "python-plugwise";
29 tag = "v${version}";
30 hash = "sha256-hGXjwEOvcSIvfw3xeIUVF59bSXjVXL7CMUncHqeVZ1Y=";
31 };
32
33 postPatch = ''
34 # setuptools and wheel
35 sed -i -e "s/~=[0-9.]*//g" pyproject.toml
36 '';
37
38 build-system = [ setuptools ];
39
40 dependencies = [
41 aiofiles
42 aiohttp
43 defusedxml
44 munch
45 python-dateutil
46 ];
47
48 nativeCheckInputs = [
49 freezegun
50 jsonpickle
51 pytest-aiohttp
52 pytest-asyncio
53 pytestCheckHook
54 ];
55
56 pythonImportsCheck = [ "plugwise" ];
57
58 __darwinAllowLocalNetworking = true;
59
60 meta = with lib; {
61 description = "Python module for Plugwise Smiles, Stretch and USB stick";
62 homepage = "https://github.com/plugwise/python-plugwise";
63 changelog = "https://github.com/plugwise/python-plugwise/releases/tag/${src.tag}";
64 license = with licenses; [ mit ];
65 maintainers = with maintainers; [ fab ];
66 };
67}