Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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.8.3";
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-BztVWvDUDXTgC1uha7grD4hcWJqKcua4UVgy3KivWSI=";
30 };
31
32 __darwinAllowLocalNetworking = true;
33
34 postPatch = ''
35 substituteInPlace pyproject.toml \
36 --replace-fail "setuptools==80.9.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 disabledTests = [
57 # AssertionError: assert 548 == 555
58 "test_central_full"
59 ];
60
61 pythonImportsCheck = [ "hahomematic" ];
62
63 meta = with lib; {
64 description = "Python module to interact with HomeMatic devices";
65 homepage = "https://github.com/SukramJ/hahomematic";
66 changelog = "https://github.com/SukramJ/hahomematic/blob/${src.tag}/changelog.md";
67 license = licenses.mit;
68 maintainers = with maintainers; [
69 dotlambda
70 fab
71 ];
72 };
73}