1{
2 lib,
3 arviz,
4 buildPythonPackage,
5 cachetools,
6 cloudpickle,
7 fetchFromGitHub,
8 numpy,
9 pandas,
10 pytensor,
11 pythonOlder,
12 rich,
13 scipy,
14 setuptools,
15 typing-extensions,
16}:
17
18buildPythonPackage rec {
19 pname = "pymc";
20 version = "5.15.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.10";
24
25 src = fetchFromGitHub {
26 owner = "pymc-devs";
27 repo = "pymc";
28 rev = "refs/tags/v${version}";
29 hash = "sha256-9AqnJOm0yQOOoksg1lpI4EcduU5xDjnIplOzVJIwQFo=";
30 };
31
32 postPatch = ''
33 substituteInPlace setup.py \
34 --replace-fail ', "pytest-cov"' ""
35 '';
36
37 build-system = [ setuptools ];
38
39 dependencies = [
40 arviz
41 cachetools
42 cloudpickle
43 numpy
44 pandas
45 pytensor
46 rich
47 scipy
48 typing-extensions
49 ];
50
51 # The test suite is computationally intensive and test failures are not
52 # indicative for package usability hence tests are disabled by default.
53 doCheck = false;
54
55 pythonImportsCheck = [ "pymc" ];
56
57 meta = with lib; {
58 description = "Bayesian estimation, particularly using Markov chain Monte Carlo (MCMC)";
59 homepage = "https://github.com/pymc-devs/pymc";
60 changelog = "https://github.com/pymc-devs/pymc/releases/tag/v${version}";
61 license = licenses.asl20;
62 maintainers = with maintainers; [
63 nidabdella
64 ferrine
65 ];
66 };
67}