1{ 2 lib, 3 aiohttp, 4 asyncio-dgram, 5 buildPythonPackage, 6 certifi, 7 fetchFromGitHub, 8 frozenlist, 9 poetry-core, 10 pytest-aiohttp, 11 pytest-asyncio, 12 pytestCheckHook, 13 pythonOlder, 14 voluptuous, 15 typing-extensions, 16 yarl, 17}: 18 19buildPythonPackage rec { 20 pname = "aioguardian"; 21 version = "2025.02.0"; 22 pyproject = true; 23 24 disabled = pythonOlder "3.11"; 25 26 src = fetchFromGitHub { 27 owner = "bachya"; 28 repo = "aioguardian"; 29 tag = version; 30 hash = "sha256-RoVD2O/OAk4l96kYEq7ZM/2QuckcPxDluf1MT4HdKc4="; 31 }; 32 33 postPatch = '' 34 substituteInPlace pyproject.toml \ 35 --replace-fail poetry-core==2.0.1 poetry-core 36 ''; 37 38 pythonRelaxDeps = [ 39 "asyncio_dgram" 40 "frozenlist" 41 "typing-extensions" 42 ]; 43 44 build-system = [ poetry-core ]; 45 46 dependencies = [ 47 aiohttp 48 asyncio-dgram 49 certifi 50 frozenlist 51 voluptuous 52 typing-extensions 53 yarl 54 ]; 55 56 nativeCheckInputs = [ 57 asyncio-dgram 58 pytest-aiohttp 59 pytest-asyncio 60 pytestCheckHook 61 ]; 62 63 disabledTestPaths = [ "examples/" ]; 64 65 pythonImportsCheck = [ "aioguardian" ]; 66 67 meta = with lib; { 68 description = "Python library to interact with Elexa Guardian devices"; 69 longDescription = '' 70 aioguardian is an asyncio-focused library for interacting with the 71 Guardian line of water valves and sensors from Elexa. 72 ''; 73 homepage = "https://github.com/bachya/aioguardian"; 74 changelog = "https://github.com/bachya/aioguardian/releases/tag/${version}"; 75 license = with licenses; [ mit ]; 76 maintainers = with maintainers; [ fab ]; 77 }; 78}