blob: 3009c4f10d3aedc1e90ff0ba4c4802fcd2efe71f [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
17PyAPI_FUNC(_PyInitError) _Py_InitializeCore(
18 PyInterpreterState **interp,
19 const _PyCoreConfig *);
20PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
21
22
23PyAPI_FUNC(_PyInitError) _PyMainInterpreterConfig_Read(
24 _PyMainInterpreterConfig *config,
25 const _PyCoreConfig *core_config);
26PyAPI_FUNC(void) _PyMainInterpreterConfig_Clear(_PyMainInterpreterConfig *);
27PyAPI_FUNC(int) _PyMainInterpreterConfig_Copy(
28 _PyMainInterpreterConfig *config,
29 const _PyMainInterpreterConfig *config2);
30/* Used by _testcapi.get_main_config() */
31PyAPI_FUNC(PyObject*) _PyMainInterpreterConfig_AsDict(
32 const _PyMainInterpreterConfig *config);
33
34PyAPI_FUNC(_PyInitError) _Py_InitializeMainInterpreter(
35 PyInterpreterState *interp,
36 const _PyMainInterpreterConfig *);
37
38/* Initialization and finalization */
39
40PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
41 const _PyCoreConfig *config);
42PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalInitError(_PyInitError err);
43
44/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
45 * exit functions.
46 */
47PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
48
49/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
50PyAPI_FUNC(void) _Py_RestoreSignals(void);
51
52PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
53
54PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
55
56PyAPI_FUNC(const char *) _Py_gitidentifier(void);
57PyAPI_FUNC(const char *) _Py_gitversion(void);
58
59/* Internal -- various one-time initializations */
60PyAPI_FUNC(PyObject *) _PyBuiltin_Init(void);
61PyAPI_FUNC(_PyInitError) _PySys_BeginInit(PyObject **sysmod);
62PyAPI_FUNC(int) _PySys_EndInit(PyObject *sysdict, PyInterpreterState *interp);
63PyAPI_FUNC(_PyInitError) _PyImport_Init(PyInterpreterState *interp);
64PyAPI_FUNC(void) _PyExc_Init(PyObject * bltinmod);
65PyAPI_FUNC(_PyInitError) _PyImportHooks_Init(void);
66PyAPI_FUNC(int) _PyFloat_Init(void);
67PyAPI_FUNC(int) PyByteArray_Init(void);
68PyAPI_FUNC(_PyInitError) _Py_HashRandomization_Init(const _PyCoreConfig *);
69
70/* Various internal finalizers */
71
72PyAPI_FUNC(void) PyMethod_Fini(void);
73PyAPI_FUNC(void) PyFrame_Fini(void);
74PyAPI_FUNC(void) PyCFunction_Fini(void);
75PyAPI_FUNC(void) PyDict_Fini(void);
76PyAPI_FUNC(void) PyTuple_Fini(void);
77PyAPI_FUNC(void) PyList_Fini(void);
78PyAPI_FUNC(void) PySet_Fini(void);
79PyAPI_FUNC(void) PyBytes_Fini(void);
80PyAPI_FUNC(void) PyByteArray_Fini(void);
81PyAPI_FUNC(void) PyFloat_Fini(void);
82PyAPI_FUNC(void) PyOS_FiniInterrupts(void);
83PyAPI_FUNC(void) PySlice_Fini(void);
84PyAPI_FUNC(void) PyAsyncGen_Fini(void);
85
86PyAPI_FUNC(int) _Py_IsFinalizing(void);
87
88/* Random */
89PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
90PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
91
92/* Legacy locale support */
93PyAPI_FUNC(void) _Py_CoerceLegacyLocale(int warn);
94PyAPI_FUNC(int) _Py_LegacyLocaleDetected(void);
95PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
96
97#ifdef __cplusplus
98}
99#endif