1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 click,
6 fetchFromGitHub,
7 prompt-toolkit,
8 pycryptodome,
9 pydantic,
10 pythonOlder,
11 setuptools,
12}:
13
14buildPythonPackage rec {
15 pname = "pykoplenti";
16 version = "1.4.0";
17 pyproject = true;
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "stegm";
23 repo = "pykoplenti";
24 tag = "v${version}";
25 hash = "sha256-vsqbjNj5x7X0VGbTq+CdZ9rPXVDypBkgaCI6MImloLo=";
26 };
27
28 pythonRelaxDeps = [ "pydantic" ];
29
30 nativeBuildInputs = [
31 setuptools
32 ];
33
34 propagatedBuildInputs = [
35 aiohttp
36 pycryptodome
37 pydantic
38 ];
39
40 optional-dependencies = {
41 CLI = [
42 click
43 prompt-toolkit
44 ];
45 };
46
47 # Project has no tests
48 doCheck = false;
49
50 pythonImportsCheck = [ "pykoplenti" ];
51
52 meta = with lib; {
53 description = "Python REST client API for Kostal Plenticore Inverters";
54 mainProgram = "pykoplenti";
55 homepage = "https://github.com/stegm/pykoplenti/";
56 changelog = "https://github.com/stegm/pykoplenti/releases/tag/v${version}";
57 license = with licenses; [ asl20 ];
58 maintainers = with maintainers; [ fab ];
59 };
60}