1{ lib 2, buildPythonPackage 3, fetchFromGitHub 4, pythonOlder 5, attrs 6, bitstruct 7, click 8, future 9, pathlib2 10, typing ? null 11, lxml 12, xlwt 13, xlrd 14, xlsxwriter 15, pyyaml 16, pytestCheckHook 17}: 18 19buildPythonPackage rec { 20 pname = "canmatrix"; 21 version = "0.9.5"; 22 23 # uses fetchFromGitHub as PyPi release misses test/ dir 24 src = fetchFromGitHub { 25 owner = "ebroecker"; 26 repo = pname; 27 rev = version; 28 sha256 = "0x8x8kbg4gyzi0ia9657xygp0mqfii76b67fsx76d31bqsdvlda5"; 29 }; 30 31 propagatedBuildInputs = [ 32 # required 33 attrs 34 bitstruct 35 click 36 future 37 pathlib2 38 # optional 39 lxml 40 xlwt 41 xlrd 42 xlsxwriter 43 pyyaml 44 ] ++ lib.optional (pythonOlder "3.5") typing; 45 46 postPatch = '' 47 substituteInPlace setup.py \ 48 --replace "version = versioneer.get_version()" "version = \"${version}\"" 49 ''; 50 51 nativeCheckInputs = [ pytestCheckHook ]; 52 # long_envvar_name_imports requires stable key value pair ordering 53 pytestFlagsArray = [ "-s src/canmatrix" ]; 54 disabledTests = [ "long_envvar_name_imports" ]; 55 pythonImportsCheck = [ "canmatrix" ]; 56 57 meta = with lib; { 58 homepage = "https://github.com/ebroecker/canmatrix"; 59 description = "Support and convert several CAN (Controller Area Network) database formats .arxml .dbc .dbf .kcd .sym fibex xls(x)"; 60 license = licenses.bsd2; 61 maintainers = with maintainers; [ sorki ]; 62 }; 63} 64