Mercurial > pytave
comparison oct-py-init.cc @ 405:478d83448b0b
Refactor Python initialization into a common function
* oct-py-init.cc, oct-py-init.h: New files defining a pytave::py_init function.
* __py_struct_from_dict__.cc, pycall.cc, pyeval.cc, pyexec.cc: Use it instead
of initializing Python differently in each entry point.
* Makefile.am (COMMON_SOURCE_FILES): Include oct-py-init.cc in the list.
(PYTAVE_HEADER_FILES): Include oct-py-init.h in the list.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Sat, 29 Apr 2017 15:43:42 -0700 |
parents | |
children | 78448e4de20a |
comparison
equal
deleted
inserted
replaced
404:aef165ff92b0 | 405:478d83448b0b |
---|---|
1 /* | |
2 | |
3 Copyright (C) 2017 Mike Miller | |
4 | |
5 This file is part of Pytave. | |
6 | |
7 Pytave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
9 Free Software Foundation; either version 3 of the License, or (at your | |
10 option) any later version. | |
11 | |
12 Pytave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with Pytave; see the file COPYING. If not, see | |
19 <http://www.gnu.org/licenses/>. | |
20 | |
21 */ | |
22 | |
23 #if defined (HAVE_CONFIG_H) | |
24 # include <config.h> | |
25 #endif | |
26 | |
27 #include <Python.h> | |
28 | |
29 #include "oct-py-init.h" | |
30 | |
31 // FIXME: the following are only needed for Boost.Python library and NumPy | |
32 // library initialization | |
33 #define PYTAVE_DO_DECLARE_SYMBOL | |
34 #include <boost/python.hpp> | |
35 #include "arrayobjectdefs.h" | |
36 | |
37 namespace pytave | |
38 { | |
39 | |
40 void | |
41 py_init () | |
42 { | |
43 Py_Initialize (); | |
44 | |
45 // FIXME: these are only needed for Boost.Python implicit conversion | |
46 // of Octave arrays to NumPy arrays | |
47 boost::python::numeric::array::set_module_and_type ("numpy", "ndarray"); | |
48 _import_array (); | |
49 } | |
50 | |
51 } |