{ lib, stdenv, fetchFromGitHub, python3Packages, ... }: python3Packages.buildPythonPackage rec { pname = "python-roborock"; version = "3.8.0"; pyproject = true; disabled = python3Packages.pythonOlder "3.11"; src = fetchFromGitHub { owner = "humbertogontijo"; repo = "python-roborock"; tag = "v${version}"; hash = "sha256-Ts1X07eTv4KXv344F3fGazHlDx6XXGQfdmxb+gd/0qc="; }; pythonRelaxDeps = [ "pycryptodome" ]; build-system = with python3Packages; [ poetry-core hatchling ]; dependencies = with python3Packages; [ aiohttp aiomqtt async-timeout click click-shell construct dacite paho-mqtt pycryptodome pyrate-limiter vacuum-map-parser-roborock pyshark ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pycryptodomex ]; nativeCheckInputs = with python3Packages; [ aioresponses freezegun pytest-asyncio pytestCheckHook syrupy ]; 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/${src.tag}/CHANGELOG.md"; license = licenses.gpl3Only; maintainers = with maintainers; [ fab ]; mainProgram = "roborock"; }; }