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