{ lib , aiofiles , aiohttp , async-timeout , async-generator , buildPythonPackage , fetchFromGitHub , pypubsub , pyserial , pyserial-asyncio , pytestCheckHook , pythonAtLeast , pythonOlder , setuptools , voluptuous }: buildPythonPackage rec { pname = "pyinsteon"; version = "1.5.3"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "pyinsteon"; repo = "pyinsteon"; rev = "refs/tags/${version}"; hash = "sha256-9d6QbekUv63sjKdK+ZogYOkGfFXVW+JB6ITHnehLwtM="; }; build-system = [ setuptools ]; dependencies = [ aiofiles aiohttp async-timeout pypubsub pyserial pyserial-asyncio voluptuous ]; nativeCheckInputs = [ async-generator pytestCheckHook ]; disabledTestPaths = lib.optionals (pythonAtLeast "3.12") [ # Tests are blocking or failing "tests/test_handlers/" ]; pythonImportsCheck = [ "pyinsteon" ]; meta = with lib; { description = "Python library to support Insteon home automation projects"; longDescription = '' This is a Python package to interface with an Insteon Modem. It has been tested to work with most USB or RS-232 serial based devices such as the 2413U, 2412S, 2448A7 and Hub models 2242 and 2245. ''; homepage = "https://github.com/pyinsteon/pyinsteon"; changelog = "https://github.com/pyinsteon/pyinsteon/releases/tag/${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; mainProgram = "insteon_tools"; }; }