Skip to content

Commit 29e4951

Browse files
arman-novikovrwgk
authored andcommitted
refact: each initialize_interpreter overloads in pybind11 ns
1 parent 2c45ce2 commit 29e4951

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

include/pybind11/embed.h

+7-8
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,14 @@ inline void precheck_interpreter() {
9393
}
9494
}
9595

96+
PYBIND11_NAMESPACE_END(detail)
97+
9698
#if PY_VERSION_HEX >= PYBIND11_PYCONFIG_SUPPORT_PY_VERSION_HEX
9799
inline void initialize_interpreter(PyConfig *config,
98100
int argc = 0,
99101
const char *const *argv = nullptr,
100102
bool add_program_dir_to_path = true) {
103+
detail::precheck_interpreter();
101104
PyStatus status = PyConfig_SetBytesArgv(config, argc, const_cast<char *const *>(argv));
102105
if (PyStatus_Exception(status) != 0) {
103106
// A failure here indicates a character-encoding failure or the python
@@ -125,6 +128,7 @@ inline void initialize_interpreter_pre_pyconfig(bool init_signal_handlers,
125128
int argc,
126129
const char *const *argv,
127130
bool add_program_dir_to_path) {
131+
detail::precheck_interpreter();
128132
Py_InitializeEx(init_signal_handlers ? 1 : 0);
129133
# if defined(WITH_THREAD) && PY_VERSION_HEX < 0x03070000
130134
PyEval_InitThreads();
@@ -161,8 +165,6 @@ inline void initialize_interpreter_pre_pyconfig(bool init_signal_handlers,
161165
}
162166
#endif
163167

164-
PYBIND11_NAMESPACE_END(detail)
165-
166168
/** \rst
167169
Initialize the Python interpreter. No other pybind11 or CPython API functions can be
168170
called before this is done; with the exception of `PYBIND11_EMBEDDED_MODULE`. The
@@ -186,17 +188,15 @@ inline void initialize_interpreter(bool init_signal_handlers = true,
186188
int argc = 0,
187189
const char *const *argv = nullptr,
188190
bool add_program_dir_to_path = true) {
189-
detail::precheck_interpreter();
190191
#if PY_VERSION_HEX < PYBIND11_PYCONFIG_SUPPORT_PY_VERSION_HEX
191-
detail::initialize_interpreter_pre_pyconfig(
192-
init_signal_handlers, argc, argv, add_program_dir_to_path);
192+
initialize_interpreter_pre_pyconfig(init_signal_handlers, argc, argv, add_program_dir_to_path);
193193
#else
194194
PyConfig config;
195195
PyConfig_InitIsolatedConfig(&config);
196196
config.isolated = 0;
197197
config.use_environment = 1;
198198
config.install_signal_handlers = init_signal_handlers ? 1 : 0;
199-
detail::initialize_interpreter(&config, argc, argv, add_program_dir_to_path);
199+
initialize_interpreter(&config, argc, argv, add_program_dir_to_path);
200200
#endif
201201
}
202202

@@ -289,8 +289,7 @@ class scoped_interpreter {
289289
int argc = 0,
290290
const char *const *argv = nullptr,
291291
bool add_program_dir_to_path = true) {
292-
detail::precheck_interpreter();
293-
detail::initialize_interpreter(config, argc, argv, add_program_dir_to_path);
292+
initialize_interpreter(config, argc, argv, add_program_dir_to_path);
294293
}
295294
#endif
296295

0 commit comments

Comments
 (0)