{ 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.6"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "pyro-ppl"; repo = "funsor"; rev = "refs/tags/${version}"; hash = "sha256-Prj1saT0yoPAP8rDE0ipBEpR3QMk4PS12VSJlxc22p8="; }; # 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 ]; }; }