Merge pull request #89735 from wucke13/pyuavcan

Pyuavcan
This commit is contained in:
Benjamin Hipple
2020-07-05 19:55:20 -04:00
committed by GitHub
4 changed files with 139 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
{ lib, buildPythonPackage, pythonOlder, fetchPypi, pydsdl }:
buildPythonPackage rec {
pname = "nunavut";
version = "0.3.0";
disabled = pythonOlder "3.5"; # only python>=3.5 is supported
src = fetchPypi {
inherit pname version;
sha256 = "1ycnxrw2qgm7kdapsnhz80jsqkghgvb5giqwapn0m30rplwc3s36";
};
propagatedBuildInputs = [
pydsdl
];
# allow for writable directory for darwin
preBuild = ''
export HOME=$TMPDIR
'';
# repo doesn't contain tests, ensure imports aren't broken
pythonImportsCheck = [
"nunavut"
];
meta = with lib; {
description = "A UAVCAN DSDL template engine";
longDescription = ''
It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
authors to generate code, schemas, metadata, documentation, etc.
'';
homepage = "https://nunavut.readthedocs.io/";
maintainers = with maintainers; [ wucke13 ];
license = with licenses; [ bsd3 mit ];
};
}

View File

@@ -0,0 +1,37 @@
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder }:
buildPythonPackage rec {
pname = "pydsdl";
version = "1.4.2";
disabled = pythonOlder "3.5"; # only python>=3.5 is supported
src = fetchFromGitHub {
owner = "UAVCAN";
repo = pname;
rev = version;
sha256 = "03kbpzdrjzj5vpgz5rhc110pm1axdn3ynv88b42zq6iyab4k8k1x";
};
propagatedBuildInputs = [
];
# allow for writable directory for darwin
preBuild = ''
export HOME=$TMPDIR
'';
# repo doesn't contain tests, ensure imports aren't broken
pythonImportsCheck = [
"pydsdl"
];
meta = with lib; {
description = "A UAVCAN DSDL compiler frontend implemented in Python";
longDescription = ''
It supports all DSDL features defined in the UAVCAN specification.
'';
homepage = "https://uavcan.org";
maintainers = with maintainers; [ wucke13 ];
license = licenses.mit;
};
}

View File

@@ -0,0 +1,50 @@
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, nunavut
, pyserial , pytest, ruamel_yaml}:
buildPythonPackage rec {
pname = "pyuavcan";
version = "1.1.0.dev1";
disabled = pythonOlder "3.7"; # only python>=3.7 is supported
src = fetchFromGitHub {
owner = "UAVCAN";
repo = pname;
rev = version;
sha256 = "0fmbmdnnh679zkllv5m6pkrasg7m9vjwabqnmz5m7flrgdh6h4qa";
};
propagatedBuildInputs = [
numpy
nunavut
pyserial
pytest
ruamel_yaml
];
# allow for writable directory for darwin
preBuild = ''
export HOME=$TMPDIR
export PYTHONASYNCIODEBUG=1
'';
# tests fail ATM.
doCheck = false;
# check at least that import works, as tests fail
pythonImportsCheck = [
"pyuavcan"
];
meta = with lib; {
description = "A full-featured implementation of the UAVCAN protocol stack";
longDescription = ''
It is intended for non-embedded, user-facing applications such as GUI
software, diagnostic tools, automation scripts, prototypes, and various
R&D cases. PyUAVCAN consists of a Python library (package) and a simple
CLI tool for basic diagnostics and shell script automation.
'';
homepage = "https://pyuavcan.readthedocs.io";
maintainers = with maintainers; [ wucke13 ];
license = licenses.mit;
};
}