Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / pyocd / default.nix
blob1f09ed696da0401b1e67c9aa43075de444b04fb5
1 { lib
2 , buildPythonPackage
3 , fetchPypi
4 , fetchpatch
5 , capstone_4
6 , cmsis-pack-manager
7 , colorama
8 , importlib-metadata
9 , importlib-resources
10 , intelhex
11 , intervaltree
12 , lark
13 , natsort
14 , prettytable
15 , pyelftools
16 , pylink-square
17 , pyusb
18 , pyyaml
19 , setuptools
20 , setuptools-scm
21 , typing-extensions
22 , stdenv
23 , hidapi
24 , pytestCheckHook
27 buildPythonPackage rec {
28   pname = "pyocd";
29   version = "0.36.0";
30   pyproject = true;
32   src = fetchPypi {
33     inherit pname version;
34     hash = "sha256-k3eCrMna/wVNUPt8b3iM2UqE+A8LhfJarKuZ3Jgihkg=";
35   };
37   patches = [
38     # https://github.com/pyocd/pyOCD/pull/1332
39     (fetchpatch {
40       name = "libusb-package-optional.patch";
41       url = "https://github.com/pyocd/pyOCD/commit/0b980cf253e3714dd2eaf0bddeb7172d14089649.patch";
42       hash = "sha256-B2+50VntcQELeakJbCeJdgI1iBU+h2NkXqba+LRYa/0=";
43     })
44   ];
46   postPatch = ''
47     substituteInPlace setup.cfg \
48       --replace "libusb-package>=1.0,<2.0" ""
49   '';
51   nativeBuildInputs = [
52     setuptools
53     setuptools-scm
54   ];
56   propagatedBuildInputs = [
57     capstone_4
58     cmsis-pack-manager
59     colorama
60     importlib-metadata
61     importlib-resources
62     intelhex
63     intervaltree
64     lark
65     natsort
66     prettytable
67     pyelftools
68     pylink-square
69     pyusb
70     pyyaml
71     typing-extensions
72   ] ++ lib.optionals (!stdenv.isLinux) [
73     hidapi
74   ];
76   pythonImportsCheck = [
77     "pyocd"
78   ];
80   nativeCheckInputs = [
81     pytestCheckHook
82   ];
84   meta = with lib; {
85     changelog = "https://github.com/pyocd/pyOCD/releases/tag/v${version}";
86     description = "Python library for programming and debugging Arm Cortex-M microcontrollers";
87     downloadPage = "https://github.com/pyocd/pyOCD";
88     homepage = "https://pyocd.io";
89     license = licenses.asl20;
90     maintainers = with maintainers; [ frogamic sbruder ];
91   };