summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--pkgs/development/python-modules/bytewax/default.nix72
-rw-r--r--pkgs/development/python-modules/bytewax/remove-docs-test.patch10
-rw-r--r--pkgs/top-level/python-packages.nix2
4 files changed, 90 insertions, 0 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index bd7c824c1f9..6c732b31288 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -10582,6 +10582,12 @@
     githubId = 133448;
     name = "MikoĊ‚aj Siedlarek";
   };
+  mslingsby = {
+    email = "morten.slingsby@eviny.no";
+    github = "MortenSlingsby";
+    githubId = 111859550;
+    name = "Morten Slingsby";
+  };
   msm = {
     email = "msm@tailcall.net";
     github = "msm-code";
diff --git a/pkgs/development/python-modules/bytewax/default.nix b/pkgs/development/python-modules/bytewax/default.nix
new file mode 100644
index 00000000000..36e85542c07
--- /dev/null
+++ b/pkgs/development/python-modules/bytewax/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, rustPlatform
+, setuptools-rust
+, openssl
+, pkg-config
+, cyrus_sasl
+, protobuf
+, cmake
+, gcc
+, dill
+, multiprocess
+, pytestCheckHook
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "bytewax";
+  version = "0.15.1";
+  format = "pyproject";
+
+  disabled = pythonAtLeast "3.11";
+
+  src = fetchFromGitHub {
+    owner = "bytewax";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-4HZUu3WSrhxusvuVz8+8mndTu/9DML1tCH52eaWy+oE=";
+  };
+
+  # Remove docs tests, myst-docutils in nixpkgs is not compatible with package requirements.
+  # Package uses old version.
+  patches = [ ./remove-docs-test.patch ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    hash = "sha256-IfVX3k9AsqP84aagCLSwxmutUoEkP8haD+t+VY4V02U=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    rustPlatform.maturinBuildHook
+    rustPlatform.cargoSetupHook
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  buildInputs = [
+    openssl
+    cyrus_sasl
+    protobuf
+  ];
+
+  propagatedBuildInputs = [
+    dill
+    multiprocess
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Python Stream Processing";
+    homepage = "https://github.com/bytewax/bytewax";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mslingsby kfollesdal ];
+    # mismatched type expected u8, found i8
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/pkgs/development/python-modules/bytewax/remove-docs-test.patch b/pkgs/development/python-modules/bytewax/remove-docs-test.patch
new file mode 100644
index 00000000000..28e7848cea2
--- /dev/null
+++ b/pkgs/development/python-modules/bytewax/remove-docs-test.patch
@@ -0,0 +1,10 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index 9b6ee4b..4a82c15 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -56,5 +56,4 @@ testpaths = [
+ 
+     # TODO: Turn back on markdown tests once we stabilize inputs.
+ 
+-    "docs",
+ ]
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9977e795ab3..e094604801d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1535,6 +1535,8 @@ self: super: with self; {
 
   bytecode = callPackage ../development/python-modules/bytecode { };
 
+  bytewax = callPackage ../development/python-modules/bytewax { };
+
   bz2file = callPackage ../development/python-modules/bz2file { };
 
   cachecontrol = callPackage ../development/python-modules/cachecontrol { };