1 /**
2  *
3  *  Copyright 2005-2021 Pierre-Henri WUILLEMIN (@LIP6) and Christophe GONZALES (@AMU)
4  *   {prenom.nom}_at_lip6.fr
5  *
6  *  This library is free software: you can redistribute it and/or modify
7  *  it under the terms of the GNU Lesser General Public License as published by
8  *  the Free Software Foundation, either version 3 of the License, or
9  *  (at your option) any later version.
10  *
11  *  This library is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU Lesser General Public License for more details.
15  *
16  *  You should have received a copy of the GNU Lesser General Public License
17  *  along with this library.  If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20 
21 %define DOCSTRING
22 "pyAgrum is a scientific C++ and Python library dedicated to Bayesian Networks and other Probabilistic Graphical Models.  It provides a high-level interface to the part of the C++ aGrUM library allowing to create, model, learn, use, calculate with and embed Bayesian Networks and other graphical models. Some specific (python and C++) codes are added in order to simplify and extend the aGrUM API. The module is mainly generated by the SWIG interface generator."
23 %enddef
24 %module(docstring=DOCSTRING, directors="1") pyAgrum
25 //%feature("autodoc", "0");
26 %include "docs.i"
27 
28 //317 : Specialization of non-template
29 //320 : Explicit template instantiation ignored.
30 //325 : Nested class not currently supported (Database ignored)
31 //509 : Overloaded method effectively ignore
32 #pragma SWIG nowarn=320,317,325,509
33 
34 //#pragma SWIG nowarn=341,342 // The 'using' keyword in type aliasing is not fully supported yet.
35 
36 
37 %begin %{
38 #include <cmath>
39 %}
40 
41 %include "std_vector.i"
42 %include "std_string.i"
43 
44 %{
45 #define SWIG_FILE_WITH_INIT
46 
47 #include "extensions/helpers.h"
48 %}
49 
50 %pythoncode %{
51   import numpy
52   from numbers import Number
53 %}
54 
55 //////////////////////////////////////////////////////////////////
56 /* declaration of code modifiers for 'pythonification' of aGrUM */
57 //////////////////////////////////////////////////////////////////
58 %include "exceptions.i"
59 %include "pythonize.i"
60 
61 %include "gum_typemaps.i"
62 
63 //////////////////////////////////////////////////////////////////
64 /* declaration of code enhancers for pyAgrum */
65 //////////////////////////////////////////////////////////////////
66 %include "pgm.i"
67 
68 %include "core.i"
69 %include "variables.i"
70 %include "instantiation.i"
71 
72 %include "potential.i"
73 
74 %include "graphs.i"
75 
76 %include "pylisteners.i"
77 
78 %include "bayesnet.i"
79 %include "inference.i"
80 %include "learning.i"
81 %include "bndistance.i"
82 
83 %include "markovnet.i"
84 %include "MNinference.i"
85 
86 %include "credalnet.i"
87 %include "CNinference.i"
88 
89 %include "influenceDiagram.i"
90 %include "influenceDiagramInference.i"
91 
92 %include "prm.i"
93 
94 
95 //////////////////////////////////////////////////////////////////
96 /* extraction of the API for all wrappers */
97 //////////////////////////////////////////////////////////////////
98 %include "aGrUM_wrap.i"
99