about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/funsor/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/funsor/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/funsor/default.nix78
1 files changed, 78 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/funsor/default.nix b/nixpkgs/pkgs/development/python-modules/funsor/default.nix
new file mode 100644
index 000000000000..a5250afff471
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/funsor/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, makefun
+, multipledispatch
+, numpy
+, opt-einsum
+, typing-extensions
+, pyro-ppl
+, torch
+, pandas
+, pillow
+, pyro-api
+, pytest
+, pytest-xdist
+, requests
+, scipy
+, torchvision
+}:
+
+buildPythonPackage rec {
+  pname = "funsor";
+  version = "0.4.5";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pyro-ppl";
+    repo = "funsor";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3JxnRlJN/kYstcIKt8cvDmqnp8oyoA4jkMBDVuAMa5Q=";
+  };
+
+  # Disable the tests that rely on downloading assets from the internet as well as the linting checks.
+  patches = [
+    ./patch-makefile-for-tests.patch
+  ];
+
+  propagatedBuildInputs = [
+    makefun
+    multipledispatch
+    numpy
+    opt-einsum
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    # Backend
+    pyro-ppl
+    torch
+
+    pandas
+    pillow
+    pyro-api
+    pytest
+    pytest-xdist
+    requests
+    scipy
+    torchvision
+  ];
+
+  # Use the included Makefile to run the tests.
+  checkPhase = ''
+    export FUNSOR_BACKEND=torch
+    make test
+  '';
+
+  pythonImportsCheck = [ "funsor" ];
+
+  meta = with lib; {
+    description = "Functional tensors for probabilistic programming";
+    homepage = "https://funsor.pyro.ai";
+    changelog = "https://github.com/pyro-ppl/funsor/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}