1{ 2 lib, 3 aiohttp, 4 aresponses, 5 async-timeout, 6 backoff, 7 buildPythonPackage, 8 fetchFromGitHub, 9 hatchling, 10 mashumaro, 11 orjson, 12 packaging, 13 pytest-asyncio, 14 pytest-cov-stub, 15 pytest-mock, 16 pytestCheckHook, 17 pythonOlder, 18 yarl, 19}: 20 21buildPythonPackage rec { 22 pname = "python-bsblan"; 23 version = "2.2.5"; 24 pyproject = true; 25 26 disabled = pythonOlder "3.12"; 27 28 src = fetchFromGitHub { 29 owner = "liudger"; 30 repo = "python-bsblan"; 31 tag = "v${version}"; 32 hash = "sha256-kPkKgjze3ohaIaDax3h66JWw5tY+3S0N+lPqXSFFcRY="; 33 }; 34 35 postPatch = '' 36 sed -i "/ruff/d" pyproject.toml 37 ''; 38 39 env.PACKAGE_VERSION = version; 40 41 build-system = [ hatchling ]; 42 43 pythonRelaxDeps = [ "async-timeout" ]; 44 45 dependencies = [ 46 aiohttp 47 async-timeout 48 backoff 49 mashumaro 50 orjson 51 packaging 52 yarl 53 ]; 54 55 nativeCheckInputs = [ 56 aresponses 57 pytest-asyncio 58 pytest-cov-stub 59 pytest-mock 60 pytestCheckHook 61 ]; 62 63 pythonImportsCheck = [ "bsblan" ]; 64 65 meta = with lib; { 66 description = "Module to control and monitor an BSBLan device programmatically"; 67 homepage = "https://github.com/liudger/python-bsblan"; 68 changelog = "https://github.com/liudger/python-bsblan/releases/tag/${src.tag}"; 69 license = licenses.mit; 70 maintainers = with maintainers; [ fab ]; 71 }; 72}