summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/python-modules/pythran/default.nix69
-rw-r--r--pkgs/top-level/python-packages.nix2
2 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/pythran/default.nix b/pkgs/development/python-modules/pythran/default.nix
new file mode 100644
index 00000000000..864234a37e2
--- /dev/null
+++ b/pkgs/development/python-modules/pythran/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestrunner
+, ply
+, networkx
+, decorator
+, gast
+, six
+, numpy
+, beniget
+, pytestCheckHook
+, scipy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pythran";
+  version = "0.9.8post3";
+
+  src = fetchFromGitHub {
+    owner = "serge-sans-paille";
+    repo = "pythran";
+    rev = version;
+    sha256 = "sha256-GCWjJlf7zpFzELR6wTF8FoJzJ3F/WdT1hHjY5A5h/+4=";
+  };
+
+  nativeBuildInputs = [
+    pytestrunner
+  ];
+
+  propagatedBuildInputs = [
+    ply
+    networkx
+    decorator
+    gast
+    six
+    numpy
+    beniget
+  ];
+
+  pythonImportsCheck = [
+    "pythran"
+    "pythran.backend"
+    "pythran.middlend"
+    "pythran.passmanager"
+    "pythran.toolchain"
+    "pythran.spec"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    numpy
+    scipy
+  ];
+
+  # Test suite is huge.
+  # Also, in the future scipy will rely on it resulting in a circular test dependency
+  doCheck = false;
+
+  disabled = !isPy3k;
+
+  meta = {
+    description = "Ahead of Time compiler for numeric kernels";
+    homepage = https://github.com/serge-sans-paille/pythran;
+    license = lib.licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b7dff5b1121..53d99d3469f 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -6780,6 +6780,8 @@ in {
 
   python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
 
+  pythran = callPackage ../development/python-modules/pythran { };
+
   pyeverlights = callPackage ../development/python-modules/pyeverlights { };
 
   pytile = callPackage ../development/python-modules/pytile { };