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.1";
25 pyproject = true;
26
27 # Latest tag missing on GitHub
28 src = fetchPypi {
29 pname = "spsdk_pyocd";
30 inherit version;
31 hash = "sha256-yVQtX2T1l0TmFwaZDSFCXMuoFxTalfOr3b4CCTeteKI=";
32 };
33
34 build-system = [
35 setuptools
36 ];
37
38 dependencies = [
39 pyocd
40 ];
41
42 optional-dependencies = {
43 pemicro = [
44 pyocd-pemicro
45 ];
46 };
47
48 nativeCheckInputs = [
49 pytestCheckHook
50 spsdk
51 writableTmpDirAsHomeHook
52 ];
53
54 # Cyclic dependency with spsdk
55 doCheck = false;
56
57 passthru.tests = {
58 pytest = spsdk-pyocd.overridePythonAttrs {
59 pythonImportsCheck = [ "spsdk_pyocd" ];
60
61 doCheck = true;
62 };
63 };
64
65 meta = {
66 description = "Debugger probe plugin for SPSDK";
67 homepage = "https://pypi.org/project/spsdk-pyocd";
68 license = lib.licenses.bsd3;
69 maintainers = with lib.maintainers; [ GaetanLepage ];
70 };
71}