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