1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 graphviz,
6 ipywidgets,
7 matplotlib,
8 notebook,
9 numpy,
10 opt-einsum,
11 pandas,
12 pillow,
13 pyro-api,
14 pythonOlder,
15 scikit-learn,
16 scipy,
17 seaborn,
18 setuptools,
19 torch,
20 torchvision,
21 tqdm,
22 wget,
23}:
24
25buildPythonPackage rec {
26 pname = "pyro-ppl";
27 version = "1.9.1";
28 pyproject = true;
29
30 disabled = pythonOlder "3.8";
31
32 src = fetchFromGitHub {
33 owner = "pyro-ppl";
34 repo = "pyro";
35 tag = version;
36 hash = "sha256-Dvbl/80EGoGWGhWYVIf/xjovUJG1+3WtpMH+lx1oB2E=";
37 };
38
39 build-system = [ setuptools ];
40
41 dependencies = [
42 numpy
43 opt-einsum
44 pyro-api
45 torch
46 tqdm
47 ];
48
49 optional-dependencies = {
50 extras = [
51 notebook
52 ipywidgets
53 graphviz
54 matplotlib
55 torchvision
56 pandas
57 pillow
58 scikit-learn
59 seaborn
60 scipy
61 # visdom
62 wget
63 ];
64 };
65
66 # pyro not shipping tests do simple smoke test instead
67 doCheck = false;
68
69 pythonImportsCheck = [
70 "pyro"
71 "pyro.distributions"
72 "pyro.infer"
73 "pyro.optim"
74 ];
75
76 meta = with lib; {
77 description = "Library for probabilistic modeling and inference";
78 homepage = "http://pyro.ai";
79 changelog = "https://github.com/pyro-ppl/pyro/releases/tag/${version}";
80 license = licenses.asl20;
81 maintainers = with maintainers; [
82 teh
83 georgewhewell
84 ];
85 };
86}