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