1{ 2 lib, 3 awesomeversion, 4 buildPythonPackage, 5 envoy-utils, 6 fetchFromGitHub, 7 httpx, 8 lxml, 9 orjson, 10 poetry-core, 11 pyjwt, 12 pytest-asyncio, 13 pytest-cov-stub, 14 pytestCheckHook, 15 pythonOlder, 16 respx, 17 syrupy, 18 tenacity, 19}: 20 21buildPythonPackage rec { 22 pname = "pyenphase"; 23 version = "1.26.1"; 24 pyproject = true; 25 26 disabled = pythonOlder "3.11"; 27 28 src = fetchFromGitHub { 29 owner = "pyenphase"; 30 repo = "pyenphase"; 31 tag = "v${version}"; 32 hash = "sha256-EKelQNHDaWSBrr19a8kYRI/wOYcRS9umJIo4oW9aU6k="; 33 }; 34 35 pythonRelaxDeps = [ "tenacity" ]; 36 37 build-system = [ poetry-core ]; 38 39 dependencies = [ 40 awesomeversion 41 envoy-utils 42 httpx 43 lxml 44 orjson 45 pyjwt 46 tenacity 47 ]; 48 49 nativeCheckInputs = [ 50 pytest-asyncio 51 pytest-cov-stub 52 pytestCheckHook 53 respx 54 syrupy 55 ]; 56 57 disabledTestPaths = [ 58 # Tests need network access 59 "tests/test_retries.py" 60 ]; 61 62 pythonImportsCheck = [ "pyenphase" ]; 63 64 meta = with lib; { 65 description = "Library to control enphase envoy"; 66 homepage = "https://github.com/pyenphase/pyenphase"; 67 changelog = "https://github.com/pyenphase/pyenphase/blob/${src.tag}/CHANGELOG.md"; 68 license = licenses.mit; 69 maintainers = with maintainers; [ fab ]; 70 }; 71}