1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5
6 # build-system
7 setuptools,
8
9 # dependencies
10 pyocd,
11 pyocd-pemicro,
12 spsdk,
13
14 # tests
15 pytestCheckHook,
16 writableTmpDirAsHomeHook,
17
18 # passthru
19 spsdk-pyocd,
20}:
21
22buildPythonPackage rec {
23 pname = "spsdk-pyocd";
24 version = "0.3.3";
25 pyproject = true;
26
27 # Latest tag missing on GitHub
28 src = fetchPypi {
29 pname = "spsdk_pyocd";
30 inherit version;
31 hash = "sha256-Uu5QbvDd2U9evZiY2Gg4kSPRMGpFBXpxwYVgsa5M/SI=";
32 };
33
34 build-system = [
35 setuptools
36 ];
37
38 pythonRelaxDeps = [
39 "pyocd"
40 ];
41
42 dependencies = [
43 pyocd
44 ];
45
46 optional-dependencies = {
47 pemicro = [
48 pyocd-pemicro
49 ];
50 };
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 spsdk
55 writableTmpDirAsHomeHook
56 ];
57
58 # Cyclic dependency with spsdk
59 doCheck = false;
60
61 passthru.tests = {
62 pytest = spsdk-pyocd.overridePythonAttrs {
63 pythonImportsCheck = [ "spsdk_pyocd" ];
64
65 doCheck = true;
66 };
67 };
68
69 meta = {
70 description = "Debugger probe plugin for SPSDK";
71 homepage = "https://pypi.org/project/spsdk-pyocd";
72 license = lib.licenses.bsd3;
73 maintainers = with lib.maintainers; [ GaetanLepage ];
74 };
75}