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