1{ 2 lib, 3 aiohttp, 4 aioresponses, 5 buildPythonPackage, 6 fetchFromGitHub, 7 freezegun, 8 ical, 9 mashumaro, 10 poetry-core, 11 pyjwt, 12 pytest-asyncio, 13 pytest-cov-stub, 14 pytestCheckHook, 15 pythonOlder, 16 syrupy, 17 time-machine, 18 tzlocal, 19}: 20 21buildPythonPackage rec { 22 pname = "aioautomower"; 23 version = "2025.5.1"; 24 pyproject = true; 25 26 disabled = pythonOlder "3.11"; 27 28 src = fetchFromGitHub { 29 owner = "Thomas55555"; 30 repo = "aioautomower"; 31 tag = version; 32 hash = "sha256-Fia08yBmixR47WZMuNbBg+u8CyHG8lumfWJeB/EKd78="; 33 }; 34 35 postPatch = '' 36 # Upstream doesn't set a version 37 substituteInPlace pyproject.toml \ 38 --replace-fail 'version = "0.0.0"' 'version = "${version}"' 39 ''; 40 41 build-system = [ poetry-core ]; 42 43 dependencies = [ 44 aiohttp 45 ical 46 mashumaro 47 pyjwt 48 tzlocal 49 ]; 50 51 nativeCheckInputs = [ 52 aioresponses 53 freezegun 54 pytest-asyncio 55 pytest-cov-stub 56 pytestCheckHook 57 time-machine 58 syrupy 59 ]; 60 61 pythonImportsCheck = [ "aioautomower" ]; 62 63 disabledTests = [ 64 # File is missing 65 "test_standard_mower" 66 # Call no found 67 "test_post_commands" 68 # Timezone mismatches 69 "test_full_planner_event" 70 "test_sinlge_planner_event" 71 ]; 72 73 meta = with lib; { 74 description = "Module to communicate with the Automower Connect API"; 75 homepage = "https://github.com/Thomas55555/aioautomower"; 76 changelog = "https://github.com/Thomas55555/aioautomower/releases/tag/${src.tag}"; 77 license = licenses.asl20; 78 maintainers = with maintainers; [ fab ]; 79 }; 80}