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