1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 # build inputs
7 networkx,
8 numpy,
9 scipy,
10 scikit-learn,
11 pandas,
12 pyparsing,
13 torch,
14 statsmodels,
15 tqdm,
16 joblib,
17 opt-einsum,
18 # check inputs
19 pytestCheckHook,
20 pytest-cov,
21 coverage,
22 mock,
23 black,
24}:
25let
26 pname = "pgmpy";
27 version = "0.1.25";
28in
29# optional-dependencies = {
30# all = [ daft ];
31# };
32buildPythonPackage {
33 inherit pname version;
34 format = "setuptools";
35
36 disabled = pythonOlder "3.7";
37
38 src = fetchFromGitHub {
39 owner = "pgmpy";
40 repo = pname;
41 rev = "refs/tags/v${version}";
42 hash = "sha256-d2TNcJQ82XxTWdetLgtKXRpFulAEEzrr+cyRewoA6YI=";
43 };
44
45 propagatedBuildInputs = [
46 networkx
47 numpy
48 scipy
49 scikit-learn
50 pandas
51 pyparsing
52 torch
53 statsmodels
54 tqdm
55 joblib
56 opt-einsum
57 ];
58
59 disabledTests = [
60 "test_to_daft" # requires optional dependency daft
61 ];
62
63 nativeCheckInputs = [
64 pytestCheckHook
65 # xdoctest
66 pytest-cov
67 coverage
68 mock
69 black
70 ];
71
72 meta = with lib; {
73 description = "Python Library for learning (Structure and Parameter), inference (Probabilistic and Causal), and simulations in Bayesian Networks";
74 homepage = "https://github.com/pgmpy/pgmpy";
75 changelog = "https://github.com/pgmpy/pgmpy/releases/tag/v${version}";
76 license = licenses.mit;
77 maintainers = with maintainers; [ happysalada ];
78 };
79}