1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, attrs
6, bitstruct
7, future
8, pathlib2
9, typing
10, lxml
11, xlwt
12, xlrd
13, XlsxWriter
14, pyyaml
15, pytest
16, isPy38
17}:
18
19buildPythonPackage rec {
20 pname = "canmatrix";
21 version = "0.8";
22
23 # uses fetchFromGitHub as PyPi release misses test/ dir
24 src = fetchFromGitHub {
25 owner = "ebroecker";
26 repo = pname;
27 rev = version;
28 sha256 = "1wzflapyj2j4xsi7d7gfmznmxbgr658n092xyq9nac46rbhpcphg";
29 };
30
31 propagatedBuildInputs = [
32 # required
33 attrs
34 bitstruct
35 future
36 pathlib2
37 # optional
38 lxml
39 xlwt
40 xlrd
41 XlsxWriter
42 pyyaml
43 ] ++ lib.optional (pythonOlder "3.5") typing;
44
45 checkInputs = [
46 pytest
47 ];
48
49 checkPhase = ''
50 pytest -s src/canmatrix
51 '';
52
53 meta = with lib; {
54 homepage = https://github.com/ebroecker/canmatrix;
55 description = "Support and convert several CAN (Controller Area Network) database formats .arxml .dbc .dbf .kcd .sym fibex xls(x)";
56 license = licenses.bsd2;
57 maintainers = with maintainers; [ sorki ];
58 broken = isPy38;
59 };
60}
61