Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib 2, stdenv 3, aiohttp 4, alexapy 5, async-timeout 6, buildPythonPackage 7, click 8, construct 9, dacite 10, fetchFromGitHub 11, paho-mqtt 12, poetry-core 13, pycryptodome 14, pycryptodomex 15, pytest-asyncio 16, pytestCheckHook 17, pythonOlder 18, pythonRelaxDepsHook 19}: 20 21buildPythonPackage rec { 22 pname = "python-roborock"; 23 version = "0.33.2"; 24 format = "pyproject"; 25 26 disabled = pythonOlder "3.10"; 27 28 src = fetchFromGitHub { 29 owner = "humbertogontijo"; 30 repo = "python-roborock"; 31 rev = "refs/tags/v${version}"; 32 hash = "sha256-UAQlKfh6oljeWtEGYx7JiT1z9yFCAXRSlI4Ot6JUnoQ="; 33 }; 34 35 pythonRelaxDeps = [ 36 "pycryptodome" 37 ]; 38 39 nativeBuildInputs = [ 40 poetry-core 41 pythonRelaxDepsHook 42 ]; 43 44 propagatedBuildInputs = [ 45 alexapy 46 aiohttp 47 async-timeout 48 click 49 construct 50 dacite 51 paho-mqtt 52 pycryptodome 53 ] ++ lib.optionals stdenv.isDarwin [ 54 pycryptodomex 55 ]; 56 57 nativeCheckInputs = [ 58 pytest-asyncio 59 pytestCheckHook 60 ]; 61 62 pythonImportsCheck = [ 63 "roborock" 64 ]; 65 66 meta = with lib; { 67 description = "Python library & console tool for controlling Roborock vacuum"; 68 homepage = "https://github.com/humbertogontijo/python-roborock"; 69 changelog = "https://github.com/humbertogontijo/python-roborock/blob/v${version}/CHANGELOG.md"; 70 license = licenses.gpl3Only; 71 maintainers = with maintainers; [ fab ]; 72 }; 73}