{ lib , fetchPypi , buildPythonPackage , pythonOlder , Theano , pandas , patsy , joblib , tqdm , six , h5py , pytest , nose , parameterized }: buildPythonPackage rec { pname = "pymc3"; version = "3.8"; disabled = pythonOlder "3.5"; src = fetchPypi { inherit pname version; sha256 = "1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00"; }; # 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 = https://github.com/pymc-devs/pymc3; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ ilya-kolpakov ]; }; }