1{
2 lib,
3 argparse-addons,
4 bitstruct,
5 buildPythonPackage,
6 python-can,
7 crccheck,
8 diskcache,
9 fetchPypi,
10 matplotlib,
11 parameterized,
12 pytest-freezegun,
13 pytestCheckHook,
14 pythonOlder,
15 setuptools,
16 setuptools-scm,
17 textparser,
18}:
19
20buildPythonPackage rec {
21 pname = "cantools";
22 version = "40.7.1";
23 pyproject = true;
24
25 disabled = pythonOlder "3.9";
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-Rn4EzIbgdjBzda6bzYNwcQjpmOPqYBm/lodzWAuaqV8=";
30 };
31
32 nativeBuildInputs = [
33 setuptools
34 setuptools-scm
35 ];
36
37 propagatedBuildInputs = [
38 argparse-addons
39 bitstruct
40 python-can
41 crccheck
42 diskcache
43 textparser
44 ];
45
46 optional-dependencies.plot = [ matplotlib ];
47
48 nativeCheckInputs = [
49 parameterized
50 pytest-freezegun
51 pytestCheckHook
52 ]
53 ++ optional-dependencies.plot;
54
55 pythonImportsCheck = [ "cantools" ];
56
57 meta = with lib; {
58 description = "Tools to work with CAN bus";
59 homepage = "https://github.com/cantools/cantools";
60 changelog = "https://github.com/cantools/cantools/releases/tag/${version}";
61 license = licenses.mit;
62 maintainers = with maintainers; [ gray-heron ];
63 mainProgram = "cantools";
64 };
65}