1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pycryptodome,
6 pyjwt,
7 pytestCheckHook,
8 pythonOlder,
9 requests-mock,
10 setuptools,
11 zeep,
12}:
13
14buildPythonPackage rec {
15 pname = "total-connect-client";
16 version = "2025.1.4";
17 pyproject = true;
18
19 disabled = pythonOlder "3.10";
20
21 src = fetchFromGitHub {
22 owner = "craigjmidwinter";
23 repo = "total-connect-client";
24 tag = version;
25 hash = "sha256-zzSYi/qhHmugH30bnYHK9lCBVN5wuv6n9rvaZC/sIag=";
26 };
27
28 build-system = [ setuptools ];
29
30 pythonRelaxDeps = [ "pycryptodome" ];
31
32 dependencies = [
33 pycryptodome
34 pyjwt
35 zeep
36 ];
37
38 nativeCheckInputs = [
39 pytestCheckHook
40 requests-mock
41 ];
42
43 pythonImportsCheck = [ "total_connect_client" ];
44
45 meta = with lib; {
46 description = "Interact with Total Connect 2 alarm systems";
47 homepage = "https://github.com/craigjmidwinter/total-connect-client";
48 changelog = "https://github.com/craigjmidwinter/total-connect-client/releases/tag/${version}";
49 license = licenses.mit;
50 maintainers = with maintainers; [ dotlambda ];
51 };
52}