1{ 2 lib, 3 amqtt, 4 buildPythonPackage, 5 click, 6 fetchFromGitHub, 7 mashumaro, 8 orjson, 9 paho-mqtt, 10 poetry-core, 11 pytest-asyncio, 12 pytestCheckHook, 13 pythonOlder, 14 tabulate, 15}: 16 17buildPythonPackage rec { 18 pname = "roombapy"; 19 version = "1.9.1"; 20 pyproject = true; 21 22 disabled = pythonOlder "3.10"; 23 24 src = fetchFromGitHub { 25 owner = "pschmitt"; 26 repo = "roombapy"; 27 tag = version; 28 hash = "sha256-63PqNmJC0IWPPMVyZdKoZikvBA4phMcYxlTBk/m1cq0="; 29 }; 30 31 nativeBuildInputs = [ 32 poetry-core 33 ]; 34 35 pythonRelaxDeps = [ "orjson" ]; 36 37 propagatedBuildInputs = [ 38 mashumaro 39 orjson 40 paho-mqtt 41 ]; 42 43 optional-dependencies.cli = [ 44 click 45 tabulate 46 ]; 47 48 nativeCheckInputs = [ 49 amqtt 50 pytest-asyncio 51 pytestCheckHook 52 ]; 53 54 disabledTestPaths = [ 55 # Requires network access 56 "tests/test_discovery.py" 57 ]; 58 59 disabledTests = [ 60 # Test want to connect to a local MQTT broker 61 "test_roomba_connect" 62 ]; 63 64 pythonImportsCheck = [ "roombapy" ]; 65 66 meta = with lib; { 67 description = "Python program and library to control Wi-Fi enabled iRobot Roombas"; 68 mainProgram = "roombapy"; 69 homepage = "https://github.com/pschmitt/roombapy"; 70 changelog = "https://github.com/pschmitt/roombapy/releases/tag/${src.tag}"; 71 license = licenses.mit; 72 maintainers = [ ]; 73 }; 74}