diff --git a/pkgs/development/python-modules/nutpie/default.nix b/pkgs/development/python-modules/nutpie/default.nix new file mode 100644 index 000000000000..6c31d823c625 --- /dev/null +++ b/pkgs/development/python-modules/nutpie/default.nix @@ -0,0 +1,98 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + rustPlatform, + + # build-system + cargo, + rustc, + + # buildInputs + libiconv, + + # dependencies + arviz, + pandas, + pyarrow, + xarray, + + # tests + # bridgestan, (not packaged) + jax, + jaxlib, + numba, + pymc, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "nutpie"; + version = "0.13.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pymc-devs"; + repo = "nutpie"; + rev = "refs/tags/v${version}"; + hash = "sha256-XyUMCnHm5V7oFaf3W+nGpcHfq1ZFppeGMIMCU5OB87s="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-9lM1S42Bmnlb0opstZN2aOKYhBnP87Frq+fQxk0ez+c="; + }; + + build-system = [ + cargo + rustPlatform.bindgenHook + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + rustc + ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ + libiconv + ]; + + dependencies = [ + arviz + pandas + pyarrow + xarray + ]; + + pythonImportsCheck = [ "nutpie" ]; + + nativeCheckInputs = [ + # bridgestan + numba + jax + jaxlib + pymc + pytestCheckHook + setuptools + ]; + + disabledTestPaths = [ + # Require unpackaged bridgestan + "tests/test_stan.py" + + # KeyError: "duplicate registration for " + "tests/test_pymc.py" + ]; + + # Currently, no test are working... + doCheck = false; + + meta = { + description = "Python wrapper for nuts-rs"; + homepage = "https://github.com/pymc-devs/nutpie"; + changelog = "https://github.com/pymc-devs/nutpie/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9b54ba8ece45..732514205908 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9151,6 +9151,8 @@ self: super: with self; { nutils-poly = callPackage ../development/python-modules/nutils-poly { }; + nutpie = callPackage ../development/python-modules/nutpie { }; + nvchecker = callPackage ../development/python-modules/nvchecker { }; nvdlib = callPackage ../development/python-modules/nvdlib { };