mirror of https://github.com/KLayout/klayout.git
Enabling pya initialization for app and ut_runner only.
This commit is contained in:
parent
1cfe7b10ba
commit
cb0f2b4166
|
|
@ -65,8 +65,6 @@
|
|||
# include "gsiQtDesignerExternals.h"
|
||||
# include "gsiQtUiToolsExternals.h"
|
||||
|
||||
// pulls in the Qt GSI binding modules - need to be force loaded so they are available
|
||||
// the pya Python module (Python >= 3.8 does not recognize DLL paths on Windows)
|
||||
FORCE_LINK_GSI_QTCORE
|
||||
FORCE_LINK_GSI_QTGUI
|
||||
FORCE_LINK_GSI_QTWIDGETS
|
||||
|
|
@ -283,9 +281,6 @@ klayout_main_cont (int &argc, char **argv)
|
|||
|
||||
try {
|
||||
|
||||
// initialize the Python interpreter
|
||||
pya::PythonInterpreter::initialize ();
|
||||
|
||||
// this registers the gsi definitions
|
||||
gsi::initialize_external ();
|
||||
|
||||
|
|
|
|||
|
|
@ -616,6 +616,9 @@ ApplicationBase::init_app ()
|
|||
mp_ruby_interpreter = new rba::RubyInterpreter ();
|
||||
mp_python_interpreter = new pya::PythonInterpreter ();
|
||||
|
||||
// initialize the Python interpreter - load the pya module
|
||||
pya::PythonInterpreter::initialize ();
|
||||
|
||||
// Read some configuration values that we need early
|
||||
bool editable_from_config = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -326,16 +326,9 @@ PythonInterpreter::PythonInterpreter (bool embedded)
|
|||
tl::warn << tl::to_string (tr ("Unable to find built-in Python module library path"));
|
||||
}
|
||||
|
||||
// Import the pya module
|
||||
PyObject *pya_module = PyImport_ImportModule (pya_module_name);
|
||||
if (pya_module == NULL) {
|
||||
check_error ();
|
||||
return;
|
||||
}
|
||||
|
||||
// Build two objects that provide a way to redirect stdout, stderr
|
||||
// and instantiate them two times for stdout and stderr.
|
||||
PYAChannelObject::make_class (pya_module);
|
||||
PYAChannelObject::make_class ();
|
||||
m_stdout_channel = PythonRef (PYAChannelObject::create (gsi::Console::OS_stdout));
|
||||
m_stdout = PythonPtr (m_stdout_channel.get ());
|
||||
m_stderr_channel = PythonRef (PYAChannelObject::create (gsi::Console::OS_stderr));
|
||||
|
|
@ -601,7 +594,11 @@ PythonInterpreter::available () const
|
|||
void
|
||||
PythonInterpreter::initialize ()
|
||||
{
|
||||
// .. no implementation required ..
|
||||
// Import the pya module
|
||||
PyObject *pya_module = PyImport_ImportModule (pya_module_name);
|
||||
if (pya_module == NULL) {
|
||||
check_error ();
|
||||
}
|
||||
}
|
||||
|
||||
size_t
|
||||
|
|
|
|||
|
|
@ -248,6 +248,7 @@ public:
|
|||
|
||||
/**
|
||||
* @brief Provide a first (basic) initialization
|
||||
* Calling this method will load all Python functions and plugins and provide the pya module.
|
||||
*/
|
||||
static void initialize ();
|
||||
|
||||
|
|
|
|||
|
|
@ -102,11 +102,11 @@ pya_channel_init (PyObject *self, PyObject *, PyObject *)
|
|||
}
|
||||
|
||||
void
|
||||
PYAChannelObject::make_class (PyObject *module)
|
||||
PYAChannelObject::make_class ()
|
||||
{
|
||||
static PyTypeObject channel_type = {
|
||||
PyVarObject_HEAD_INIT (&PyType_Type, 0)
|
||||
"pya._Channel", // tp_name
|
||||
"__PYA_Channel", // tp_name
|
||||
sizeof (PYAChannelObject) // tp_size
|
||||
};
|
||||
|
||||
|
|
@ -124,7 +124,8 @@ PYAChannelObject::make_class (PyObject *module)
|
|||
PyType_Ready (&channel_type);
|
||||
Py_INCREF (&channel_type);
|
||||
|
||||
PyModule_AddObject (module, "_Channel", (PyObject *) &channel_type);
|
||||
PyObject *module = PyImport_AddModule("__main__");
|
||||
PyModule_AddObject (module, "__PYA_Channel", (PyObject *) &channel_type);
|
||||
|
||||
cls = &channel_type;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class SignalHandler;
|
|||
struct PYAChannelObject
|
||||
: public PyObject
|
||||
{
|
||||
static void make_class (PyObject *module);
|
||||
static void make_class ();
|
||||
static PYAChannelObject *create (gsi::Console::output_stream chn);
|
||||
|
||||
gsi::Console::output_stream channel;
|
||||
|
|
|
|||
|
|
@ -490,7 +490,6 @@ main_cont (int &argc, char **argv)
|
|||
|
||||
try {
|
||||
|
||||
pya::PythonInterpreter::initialize ();
|
||||
gsi::initialize_external ();
|
||||
|
||||
// Search and initialize plugin unit tests
|
||||
|
|
|
|||
Loading…
Reference in New Issue