Unverified Commit 02758586 authored by Robin Gloster's avatar Robin Gloster Committed by GitHub
Browse files

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

python3Packages.pycyphal & python3Packages.pyuavcan: init pycyphal at 1.15.2 & deprecate pyuavcan
parents df4d6022 7b13a350
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
{ 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 ];
  };
}
+4 −0
Original line number Diff line number Diff line
{ 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";
+12 −0
Original line number Diff line number Diff line
@@ -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 { };