1{
2 lib,
3 buildPythonPackage,
4 click,
5 fetchFromGitHub,
6 justbackoff,
7 pyserial-asyncio-fast,
8 pythonOlder,
9 pytest-asyncio,
10 pytestCheckHook,
11 setuptools,
12 setuptools-scm,
13}:
14
15buildPythonPackage rec {
16 pname = "nessclient";
17 version = "1.3.1";
18 pyproject = true;
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "nickw444";
24 repo = "nessclient";
25 tag = version;
26 hash = "sha256-E4gkrhQzA1TDmjM+NPWl1Fyoagn/pLm7BRjGSpw6LXY=";
27 };
28
29 build-system = [
30 setuptools
31 setuptools-scm
32 ];
33
34 dependencies = [
35 justbackoff
36 pyserial-asyncio-fast
37 ];
38
39 optional-dependencies = {
40 cli = [ click ];
41 };
42
43 nativeCheckInputs = [
44 pytest-asyncio
45 pytestCheckHook
46 ];
47
48 pythonImportsCheck = [ "nessclient" ];
49
50 meta = with lib; {
51 description = "Python implementation/abstraction of the Ness D8x/D16x Serial Interface ASCII protocol";
52 homepage = "https://github.com/nickw444/nessclient";
53 changelog = "https://github.com/nickw444/nessclient/releases/tag/${src.tag}";
54 license = licenses.mit;
55 maintainers = with maintainers; [ fab ];
56 mainProgram = "ness-cli";
57 };
58}