1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch2,
6
7 # build-system
8 setuptools,
9 versioneer,
10
11 # dependencies
12 arviz,
13 cachetools,
14 cloudpickle,
15 numpy,
16 pandas,
17 pytensor,
18 rich,
19 scipy,
20 threadpoolctl,
21 typing-extensions,
22}:
23
24buildPythonPackage rec {
25 pname = "pymc";
26 version = "5.25.1";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "pymc-devs";
31 repo = "pymc";
32 tag = "v${version}";
33 hash = "sha256-zh6FsCEviuyqapguTrUDsWKq70ef0IKRhnn2dkgQ/KA=";
34 };
35
36 patches = [
37 # TODO: remove at next release
38 # https://github.com/pymc-devs/pytensor/pull/1471
39 (fetchpatch2 {
40 name = "pytensor-2-32-compat";
41 url = "https://github.com/pymc-devs/pymc/commit/59176b6adda88971e546a0cf93ca04424af5197f.patch";
42 hash = "sha256-jkDwlKwxbn9DwpkxEbSXk/kbGjT/Xu8bsZHFBWYpMgA=";
43 })
44 ];
45
46 build-system = [
47 setuptools
48 versioneer
49 ];
50
51 dependencies = [
52 arviz
53 cachetools
54 cloudpickle
55 numpy
56 pandas
57 pytensor
58 rich
59 scipy
60 threadpoolctl
61 typing-extensions
62 ];
63
64 # The test suite is computationally intensive and test failures are not
65 # indicative for package usability hence tests are disabled by default.
66 doCheck = false;
67
68 pythonImportsCheck = [ "pymc" ];
69
70 meta = {
71 description = "Bayesian estimation, particularly using Markov chain Monte Carlo (MCMC)";
72 homepage = "https://github.com/pymc-devs/pymc";
73 changelog = "https://github.com/pymc-devs/pymc/releases/tag/v${version}";
74 license = lib.licenses.asl20;
75 maintainers = with lib.maintainers; [
76 nidabdella
77 ferrine
78 ];
79 };
80}