1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 fetchFromGitHub,
6 freezegun,
7 orjson,
8 pydevccu,
9 pytest-aiohttp,
10 pytest-socket,
11 pytestCheckHook,
12 python-slugify,
13 pythonOlder,
14 setuptools,
15 voluptuous,
16}:
17
18buildPythonPackage rec {
19 pname = "hahomematic";
20 version = "2025.4.1";
21 pyproject = true;
22
23 disabled = pythonOlder "3.13";
24
25 src = fetchFromGitHub {
26 owner = "SukramJ";
27 repo = "hahomematic";
28 tag = version;
29 hash = "sha256-cJpt5OjC2zXsKIxYZ+5TQORDuhLsQ+6MBzXD9ygG5Os=";
30 };
31
32 __darwinAllowLocalNetworking = true;
33
34 postPatch = ''
35 substituteInPlace pyproject.toml \
36 --replace-fail "setuptools==78.1.0" "setuptools" \
37 '';
38
39 build-system = [ setuptools ];
40
41 dependencies = [
42 aiohttp
43 orjson
44 python-slugify
45 voluptuous
46 ];
47
48 nativeCheckInputs = [
49 freezegun
50 pydevccu
51 pytest-aiohttp
52 pytest-socket
53 pytestCheckHook
54 ];
55
56 pythonImportsCheck = [ "hahomematic" ];
57
58 meta = with lib; {
59 description = "Python module to interact with HomeMatic devices";
60 homepage = "https://github.com/SukramJ/hahomematic";
61 changelog = "https://github.com/SukramJ/hahomematic/blob/${src.tag}/changelog.md";
62 license = licenses.mit;
63 maintainers = with maintainers; [
64 dotlambda
65 fab
66 ];
67 };
68}