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