13 buildPythonPackage rec {
14 pname = "screenlogicpy";
18 disabled = pythonOlder "3.10";
20 src = fetchFromGitHub {
21 owner = "dieselrabbit";
22 repo = "screenlogicpy";
23 rev = "refs/tags/v${version}";
24 hash = "sha256-z6cM0sihZvOHCA3v1DYQEev0axf4AcqEW13WA1EMhQM=";
27 nativeBuildInputs = [ setuptools ];
29 propagatedBuildInputs = [ async-timeout ];
38 # Tests require network access
39 "test_async_discovery"
41 "test_asyncio_gateway_discovery"
42 "test_discovery_async_discover"
43 "test_gateway_discovery"
46 ++ lib.optionals (pythonAtLeast "3.12") [
47 # Tests block on Python 3.12
49 "test_attach_existing"
50 "test_login_async_connect_to_gateway"
51 "test_login_async_gateway_connect"
54 pythonImportsCheck = [ "screenlogicpy" ];
57 description = "Python interface for Pentair Screenlogic devices";
58 mainProgram = "screenlogicpy";
59 homepage = "https://github.com/dieselrabbit/screenlogicpy";
60 changelog = "https://github.com/dieselrabbit/screenlogicpy/releases/tag/v${version}";
61 license = with licenses; [ gpl3Only ];
62 maintainers = with maintainers; [ fab ];