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}