1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5}:
6
7 buildPythonPackage rec {
8 pname = "pydsdl";
9 version = "1.18.0";
10 format = "setuptools";
11
12 disabled = pythonOlder "3.7";
13
14 src = fetchFromGitHub {
15 owner = "OpenCyphal";
16 repo = pname;
17 rev = "refs/tags/${version}";
18 hash = "sha256-sn7KoJmJbr7Y+N9PAXyhJnts/hW+Gi06nrHj5VIDZMU=";
19 };
20
21 # allow for writable directory for darwin
22 preBuild = ''
23 export HOME=$TMPDIR
24 '';
25
26 # Module doesn't contain tests
27 doCheck = false;
28
29 pythonImportsCheck = [
30 "pydsdl"
31 ];
32
33 meta = with lib; {
34 description = "Library to process Cyphal DSDL";
35 longDescription = ''
36 PyDSDL is a Cyphal DSDL compiler front-end implemented in Python. It accepts
37 a DSDL namespace at the input and produces a well-annotated abstract syntax
38 tree (AST) at the output, evaluating all constant expressions in the process.
39 All DSDL features defined in the Cyphal Specification are supported. The
40 library should, in theory, work on any platform and with any Python
41 implementation.
42 '';
43 homepage = "https://pydsdl.readthedocs.io/";
44 license = licenses.mit;
45 maintainers = with maintainers; [ wucke13 ];
46 };
47}