blob: 1db1d2167cb131ca1c2ef35f375322dec616f1ab [file] [log] [blame]
Victor Stinnerdd12aa02018-11-27 00:12:05 +01001#ifndef Py_CPYTHON_PYLIFECYCLE_H
2# error "this header file must not be included directly"
3#endif
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9/* Only used by applications that embed the interpreter and need to
10 * override the standard encoding determination mechanism
11 */
12PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
13 const char *errors);
14
15/* PEP 432 Multi-phase initialization API (Private while provisional!) */
16
Victor Stinnerf29084d2019-03-20 02:20:13 +010017PyAPI_FUNC(_PyInitError) _Py_PreInitialize(void);
18PyAPI_FUNC(_PyInitError) _Py_PreInitializeFromPreConfig(
Victor Stinner20004952019-03-26 02:31:11 +010019 const _PyPreConfig *preconfig);
Victor Stinnera6fbc4e2019-03-25 18:37:10 +010020PyAPI_FUNC(_PyInitError) _Py_PreInitializeFromConfig(
21 const _PyCoreConfig *coreconfig);
Victor Stinnerf29084d2019-03-20 02:20:13 +010022
Victor Stinnerdd12aa02018-11-27 00:12:05 +010023PyAPI_FUNC(_PyInitError) _Py_InitializeCore(
Victor Stinnerf8ba6f52019-03-26 16:58:50 +010024 const _PyCoreConfig *config,
25 PyInterpreterState **interp);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010026PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
27
28
Victor Stinnerdd12aa02018-11-27 00:12:05 +010029PyAPI_FUNC(_PyInitError) _Py_InitializeMainInterpreter(
Victor Stinner8b9dbc02019-03-27 01:36:16 +010030 PyInterpreterState *interp);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010031
32/* Initialization and finalization */
33
34PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
35 const _PyCoreConfig *config);
Victor Stinnerdfe88472019-03-01 12:14:41 +010036PyAPI_FUNC(void) _Py_NO_RETURN _Py_ExitInitError(_PyInitError err);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010037
38/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
39 * exit functions.
40 */
41PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
42
43/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
44PyAPI_FUNC(void) _Py_RestoreSignals(void);
45
46PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
47
48PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
49
50PyAPI_FUNC(const char *) _Py_gitidentifier(void);
51PyAPI_FUNC(const char *) _Py_gitversion(void);
52
Victor Stinnerdd12aa02018-11-27 00:12:05 +010053PyAPI_FUNC(int) _Py_IsFinalizing(void);
54
55/* Random */
56PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
57PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
58
59/* Legacy locale support */
60PyAPI_FUNC(void) _Py_CoerceLegacyLocale(int warn);
61PyAPI_FUNC(int) _Py_LegacyLocaleDetected(void);
62PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
63
64#ifdef __cplusplus
65}
66#endif