at master 1.3 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 influxdb-client, 6 kubernetes, 7 mock, 8 prometheus-client, 9 pymongo, 10 pytest-cov-stub, 11 pytest-timeout, 12 pytestCheckHook, 13 pythonOlder, 14 pyzmq, 15 setproctitle, 16 setuptools, 17}: 18 19buildPythonPackage rec { 20 pname = "powerapi"; 21 version = "2.10.0"; 22 pyproject = true; 23 24 disabled = pythonOlder "3.10"; 25 26 src = fetchFromGitHub { 27 owner = "powerapi-ng"; 28 repo = "powerapi"; 29 tag = "v${version}"; 30 hash = "sha256-rn1qe0RwYuUR23CgzOOeiwe1wuFihnhQ9a6ALgSP/cQ="; 31 }; 32 33 build-system = [ setuptools ]; 34 35 dependencies = [ 36 pyzmq 37 setproctitle 38 ]; 39 40 optional-dependencies = { 41 influxdb = [ influxdb-client ]; 42 kubernetes = [ kubernetes ]; 43 mongodb = [ pymongo ]; 44 # opentsdb = [ opentsdb-py ]; 45 prometheus = [ prometheus-client ]; 46 }; 47 48 nativeCheckInputs = [ 49 mock 50 pytest-cov-stub 51 pytestCheckHook 52 pytest-timeout 53 ] 54 ++ lib.flatten (builtins.attrValues optional-dependencies); 55 56 pythonImportsCheck = [ "powerapi" ]; 57 58 meta = { 59 description = "Python framework for building software-defined power meters"; 60 homepage = "https://github.com/powerapi-ng/powerapi"; 61 changelog = "https://github.com/powerapi-ng/powerapi/releases/tag/v${version}"; 62 license = lib.licenses.bsd3; 63 maintainers = with lib.maintainers; [ fab ]; 64 }; 65}