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