{ lib , stdenv , aiohttp , alexapy , async-timeout , buildPythonPackage , click , construct , dacite , fetchFromGitHub , paho-mqtt , poetry-core , pycryptodome , pycryptodomex , pytest-asyncio , pytestCheckHook , pythonOlder , pythonRelaxDepsHook }: buildPythonPackage rec { pname = "python-roborock"; version = "0.30.0"; format = "pyproject"; disabled = pythonOlder "3.10"; src = fetchFromGitHub { owner = "humbertogontijo"; repo = "python-roborock"; rev = "refs/tags/v${version}"; hash = "sha256-ut7iaVR/2vGJ4L6/3dl9EmMVly3gvkhHqnBFAeTOQ1Y="; }; pythonRelaxDeps = [ "pycryptodome" ]; nativeBuildInputs = [ poetry-core pythonRelaxDepsHook ]; propagatedBuildInputs = [ alexapy aiohttp async-timeout click construct dacite paho-mqtt pycryptodome ] ++ lib.optionals stdenv.isDarwin [ pycryptodomex ]; nativeCheckInputs = [ pytest-asyncio pytestCheckHook ]; pythonImportsCheck = [ "roborock" ]; meta = with lib; { description = "Python library & console tool for controlling Roborock vacuum"; homepage = "https://github.com/humbertogontijo/python-roborock"; changelog = "https://github.com/humbertogontijo/python-roborock/blob/v${version}/CHANGELOG.md"; license = licenses.gpl3Only; maintainers = with maintainers; [ fab ]; }; }