Flow123d
JB-rel-int-test-ea53151
|
#include "global_defs.h"
#include "system/exceptions.hh"
#include <string>
#include <pybind11/embed.h>
Go to the source code of this file.
Classes | |
class | internal::PythonRunning |
Namespaces | |
internal | |
Functions | |
class | __attribute__ ((visibility("default"))) PythonLoader |
* Copyright (C) 2015 Technical University of Liberec. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Definition in file python_loader.hh.
class __attribute__ | ( | (visibility("default")) | ) |
Class with static only members, should be used to load and compile Python sources either from file or from string. Implement correct initialization and finalization. TODO:
Definition of exception thrown by python compiler or interpreter.
Calls python initialization and guarantee that appropriate finalization will be called. Do nothing if initialization was done.
The method with no parameters is called at the beginning of every function of this class, so an explicit call to it has only sense if one would like to provide alternative python home directories. The string has form <prefix>[:<exec_prefix>] where <prefix> is prefix for platform independent libraries (namely sources of python standard libraries) and <exec_prefix> is prefix for platform dependent libraries namely for the python executable.
This function loads a module from the given file. Resulting module has to be deallocated by Py_DECREF() macro.
This function compile code in the given string and creates a module with name module_name
. Module contains one function with name func_name
. Function must be defined in source_strimg
. Resulting module has to be deallocated by Py_DECREF() macro.
Method which loads module by given module_name module_name can (and probably will) contain packages path (will contain dots '.' which detonates package)
Example: PyObject * python_module = PythonLoader::load_module_by_name ("profiler.profiler_formatter_module")
will import module 'profiler_formatter_module' from package 'profiler'
Formats and throws ExcPythonError exception.
Add path to python sys_path.
Returns vector of Python paths.
Definition at line 1 of file python_loader.hh.