Skip to content

Commit 94ce6ec

Browse files
committed
refact: each initialize_interpreter overloads in pybind11 ns
1 parent 8a50d84 commit 94ce6ec

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

130134
// Before it was special-cased in python 3.8, passing an empty or null argv
@@ -158,8 +162,6 @@ inline void initialize_interpreter_pre_pyconfig(bool init_signal_handlers,
158162
}
159163
#endif
160164

161-
PYBIND11_NAMESPACE_END(detail)
162-
163165
/** \rst
164166
Initialize the Python interpreter. No other pybind11 or CPython API functions can be
165167
called before this is done; with the exception of `PYBIND11_EMBEDDED_MODULE`. The
@@ -183,17 +185,15 @@ inline void initialize_interpreter(bool init_signal_handlers = true,
183185
int argc = 0,
184186
const char *const *argv = nullptr,
185187
bool add_program_dir_to_path = true) {
186-
detail::precheck_interpreter();
187188
#if PY_VERSION_HEX < PYBIND11_PYCONFIG_SUPPORT_PY_VERSION_HEX
188-
detail::initialize_interpreter_pre_pyconfig(
189-
init_signal_handlers, argc, argv, add_program_dir_to_path);
189+
initialize_interpreter_pre_pyconfig(init_signal_handlers, argc, argv, add_program_dir_to_path);
190190
#else
191191
PyConfig config;
192192
PyConfig_InitIsolatedConfig(&config);
193193
config.isolated = 0;
194194
config.use_environment = 1;
195195
config.install_signal_handlers = init_signal_handlers ? 1 : 0;
196-
detail::initialize_interpreter(&config, argc, argv, add_program_dir_to_path);
196+
initialize_interpreter(&config, argc, argv, add_program_dir_to_path);
197197
#endif
198198
}
199199

@@ -286,8 +286,7 @@ class scoped_interpreter {
286286
int argc = 0,
287287
const char *const *argv = nullptr,
288288
bool add_program_dir_to_path = true) {
289-
detail::precheck_interpreter();
290-
detail::initialize_interpreter(config, argc, argv, add_program_dir_to_path);
289+
initialize_interpreter(config, argc, argv, add_program_dir_to_path);
291290
}
292291
#endif
293292

0 commit comments

Comments
 (0)