1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 importlib-resources,
7 pydsdl,
8 pyyaml,
9}:
10
11buildPythonPackage rec {
12 pname = "nunavut";
13 version = "2.3.1";
14 format = "setuptools";
15
16 disabled = pythonOlder "3.7";
17
18 src = fetchPypi {
19 inherit pname version;
20 hash = "sha256-23C3biUUs10Po5qzn3EFaq4+HeWCXIC6WzxOKy59VgM=";
21 };
22
23 postPatch = ''
24 substituteInPlace setup.cfg \
25 --replace "pydsdl ~= 1.16" "pydsdl"
26 '';
27
28 propagatedBuildInputs = [
29 importlib-resources
30 pydsdl
31 pyyaml
32 ];
33
34 # allow for writable directory for darwin
35 preBuild = ''
36 export HOME=$TMPDIR
37 '';
38
39 # No tests in pypy package and no git tags yet for release versions, see
40 # https://github.com/UAVCAN/nunavut/issues/182
41 doCheck = false;
42
43 pythonImportsCheck = [ "nunavut" ];
44
45 meta = with lib; {
46 description = "UAVCAN DSDL template engine";
47 mainProgram = "nnvg";
48 longDescription = ''
49 It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
50 authors to generate code, schemas, metadata, documentation, etc.
51 '';
52 homepage = "https://nunavut.readthedocs.io/";
53 changelog = "https://github.com/OpenCyphal/nunavut/releases/tag/${version}";
54 maintainers = with maintainers; [ wucke13 ];
55 license = with licenses; [
56 bsd3
57 mit
58 ];
59 };
60}