blob: 1caeb98e9933c2e2269da895125c2a87b373dbee [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(
19 _PyPreConfig *preconfig);
20
Victor Stinnerdd12aa02018-11-27 00:12:05 +010021PyAPI_FUNC(_PyInitError) _Py_InitializeCore(
22 PyInterpreterState **interp,
23 const _PyCoreConfig *);
24PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
25
26
27PyAPI_FUNC(_PyInitError) _PyMainInterpreterConfig_Read(
28 _PyMainInterpreterConfig *config,
29 const _PyCoreConfig *core_config);
30PyAPI_FUNC(void) _PyMainInterpreterConfig_Clear(_PyMainInterpreterConfig *);
31PyAPI_FUNC(int) _PyMainInterpreterConfig_Copy(
32 _PyMainInterpreterConfig *config,
33 const _PyMainInterpreterConfig *config2);
34/* Used by _testcapi.get_main_config() */
35PyAPI_FUNC(PyObject*) _PyMainInterpreterConfig_AsDict(
36 const _PyMainInterpreterConfig *config);
37
38PyAPI_FUNC(_PyInitError) _Py_InitializeMainInterpreter(
39 PyInterpreterState *interp,
40 const _PyMainInterpreterConfig *);
41
42/* Initialization and finalization */
43
44PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
45 const _PyCoreConfig *config);
Victor Stinnerdfe88472019-03-01 12:14:41 +010046PyAPI_FUNC(void) _Py_NO_RETURN _Py_ExitInitError(_PyInitError err);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010047
48/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
49 * exit functions.
50 */
51PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
52
53/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
54PyAPI_FUNC(void) _Py_RestoreSignals(void);
55
56PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
57
58PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
59
60PyAPI_FUNC(const char *) _Py_gitidentifier(void);
61PyAPI_FUNC(const char *) _Py_gitversion(void);
62
Victor Stinnerdd12aa02018-11-27 00:12:05 +010063PyAPI_FUNC(int) _Py_IsFinalizing(void);
64
65/* Random */
66PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
67PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
68
69/* Legacy locale support */
70PyAPI_FUNC(void) _Py_CoerceLegacyLocale(int warn);
71PyAPI_FUNC(int) _Py_LegacyLocaleDetected(void);
72PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
73
74#ifdef __cplusplus
75}
76#endif