Merge pull request #249535 from OroraTech/feature/add-pycyphal

python3Packages.pycyphal & python3Packages.pyuavcan: init pycyphal at 1.15.2 & deprecate pyuavcan
This commit is contained in:
Robin Gloster 2023-11-14 11:28:24 +01:00 committed by GitHub
commit 0275858672
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,49 @@
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, can
, cobs
, libpcap
, nunavut
, numpy
, pyserial
}:
buildPythonPackage rec {
pname = "pycyphal";
version = "1.15.2";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-KVX+DwcJp1sjpcG1Utl9me1LwWDZPof+O6hoUt1xlXA=";
};
propagatedBuildInputs = [
can
cobs
libpcap
numpy
nunavut
pyserial
];
# Can't seem to run the tests on nix
doCheck = false;
pythonImportsCheck = [
"pycyphal"
];
meta = with lib; {
description = "A full-featured implementation of the Cyphal protocol stack in Python";
longDescription = ''
Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.).
'';
homepage = "https://opencyphal.org/";
license = licenses.mit;
maintainers = [ teams.ororatech ];
};
}

View File

@ -1,6 +1,10 @@
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, nunavut
, pyserial , pytest, ruamel-yaml}:
# This has been renamed pycyphal, without any API changes; though this package is
# quite outdated so transition might not be as seemless as it could be
# See https://uavcan.org/ (which will redirect to https://opencyphal.org/)
lib.warn "pyuavcan is deprecated and will be removed in 24.05; use pycyphal instead"
buildPythonPackage rec {
pname = "pyuavcan";
version = "1.1.0.dev1";

View File

@ -9942,6 +9942,18 @@ self: super: with self; {
pycxx = callPackage ../development/python-modules/pycxx { };
pycyphal = callPackage ../development/python-modules/pycyphal {
# Does not yet support nunavut 2+, use latest 1.X version instead
# https://github.com/OpenCyphal/pycyphal/issues/277
nunavut = self.nunavut.overridePythonAttrs (prev: rec {
version = "1.9.0";
src = prev.src.override {
inherit version;
hash = "sha256-KhgijXJ908uxM7VZdXo1WU/RGU0cfqctBCbpF2wOcy8=";
};
});
};
pydaikin = callPackage ../development/python-modules/pydaikin { };
pydal = callPackage ../development/python-modules/pydal { };