1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 poetry-core,
6 async-timeout,
7 bleak,
8 intelhex,
9 pyserial,
10 smp,
11 pytest-asyncio,
12 pytestCheckHook,
13}:
14
15buildPythonPackage rec {
16 pname = "smpclient";
17 version = "4.4.2";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "intercreate";
22 repo = "smpclient";
23 tag = version;
24 hash = "sha256-qbf0xGK1RYaeEIAsbkZ2cWj/MQrmVwm2IKmOkihxBDE=";
25 };
26
27 build-system = [
28 poetry-core
29 ];
30
31 dependencies = [
32 async-timeout
33 bleak
34 intelhex
35 pyserial
36 smp
37 ];
38
39 nativeCheckInputs = [
40 pytest-asyncio
41 pytestCheckHook
42 ];
43
44 pythonRelaxDeps = [
45 "smp"
46 ];
47
48 pythonImportsCheck = [
49 "smpclient"
50 ];
51
52 meta = {
53 description = "Simple Management Protocol (SMP) Client for remotely managing MCU firmware";
54 homepage = "https://github.com/intercreate/smpclient";
55 changelog = "https://github.com/intercreate/smpclient/releases/tag/${version}";
56 license = lib.licenses.asl20;
57 maintainers = with lib.maintainers; [ otavio ];
58 };
59}