diff --git a/pkgs/default.nix b/pkgs/default.nix index f6dc064..611eb11 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -20,6 +20,7 @@ in scanf = final.callPackage ./epnix/tools/scanf {}; epicscorelibs = final.callPackage ./epnix/python-modules/epicscorelibs {}; pvxslibs = final.callPackage ./epnix/python-modules/pvxslibs {}; + aioca = final.callPackage ./epnix/python-modules/aioca/default.nix {}; # epicscorelibs needs at least 2.11. # TODO: remove for NixOS 24.11 @@ -91,7 +92,7 @@ in channel-finder-service = callPackage ./epnix/tools/channel-finder/service {}; - inherit (final.python3Packages) lewis pyepics; + inherit (final.python3Packages) lewis pyepics aioca; inherit (callPackage ./epnix/tools/lewis/lib.nix {}) mkLewisSimulator; pcas = callPackage ./epnix/tools/pcas {}; diff --git a/pkgs/epnix/python-modules/aioca/default.nix b/pkgs/epnix/python-modules/aioca/default.nix new file mode 100644 index 0000000..8f67699 --- /dev/null +++ b/pkgs/epnix/python-modules/aioca/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + setuptools-scm, + numpy, + epicscorelibs, + epnixLib, +}: +buildPythonPackage rec { + pname = "aioca"; + version = "1.8.1"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "DiamondLightSource"; + repo = "aioca"; + rev = "${version}"; + hash = "sha256-szM/sVqeWWUj84lq/wsxNCf/aZwoCySeTnuLD+hYLyc="; + }; + + build-system = [setuptools setuptools-scm]; + dependencies = [ + setuptools + numpy + epicscorelibs + ]; + + meta = { + description = "Asynchronous Channel Access client for asyncio and Python using libca via ctypes"; + homepage = "https://DiamondLightSource.github.io/aioca"; + license = lib.licenses.asl20; + maintainers = with epnixLib.maintainers; [synthetica]; + }; +}