diff --git a/pkgs/development/python-modules/pymc3/default.nix b/pkgs/development/python-modules/pymc3/default.nix new file mode 100644 index 00000000000..308958abb6d --- /dev/null +++ b/pkgs/development/python-modules/pymc3/default.nix @@ -0,0 +1,64 @@ +{ lib +, fetchPypi +, buildPythonPackage +, pythonOlder +, Theano +, pandas +, patsy +, joblib +, tqdm +, six +, h5py +, pytest +, nose +, parameterized +, matplotlib +}: + +buildPythonPackage rec { + pname = "pymc3"; + version = "3.2"; + disabled = pythonOlder "3.5"; + + src = fetchPypi { + inherit pname version; + sha256 = "0hpzhkpv7sbwkcva7x914yvzcf1d1a952ynbcx6mvlgv5lqghc39"; + }; + + # No need for coverage stats in Nix builds + postPatch = '' + substituteInPlace setup.py --replace ", 'pytest-cov'" "" + ''; + + propagatedBuildInputs = [ + Theano + pandas + patsy + joblib + tqdm + six + h5py + ]; + + checkInputs = [ + pytest + nose + parameterized + ]; + + # The test suite is computationally intensive and test failures are not + # indicative for package usability hence tests are disabled by default. + doCheck = false; + + # For some reason tests are run as a part of the *install* phase if enabled. + # Theano writes compiled code to ~/.theano hence we set $HOME. + preInstall = "export HOME=$(mktemp -d)"; + postInstall = "rm -rf $HOME"; + + meta = { + description = "Bayesian estimation, particularly using Markov chain Monte Carlo (MCMC)"; + homepage = http://github.com/pymc-devs/pymc3; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ilya-kolpakov ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 50589b6938d..93444be7302 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8244,6 +8244,8 @@ in { pygraphviz = callPackage ../development/python-modules/pygraphviz { }; + pymc3 = callPackage ../development/python-modules/pymc3 { }; + pympler = buildPythonPackage rec { pname = "Pympler"; version = "0.4.3";