blob: 2366c774e7fa22630538d28c30a6ad87a84d6d26 [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 Stinner5ac27a52019-03-27 13:40:14 +010017PyAPI_FUNC(_PyInitError) _Py_PreInitialize(
18 const _PyPreConfig *src_config);
19PyAPI_FUNC(_PyInitError) _Py_PreInitializeFromArgs(
20 const _PyPreConfig *src_config,
21 int argc,
22 char **argv);
23PyAPI_FUNC(_PyInitError) _Py_PreInitializeFromWideArgs(
24 const _PyPreConfig *src_config,
25 int argc,
26 wchar_t **argv);
Victor Stinnerf29084d2019-03-20 02:20:13 +010027
Victor Stinnerdd12aa02018-11-27 00:12:05 +010028PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
29
30
Victor Stinnerdd12aa02018-11-27 00:12:05 +010031/* Initialization and finalization */
32
33PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
Victor Stinner5ac27a52019-03-27 13:40:14 +010034 const _PyCoreConfig *config);
35PyAPI_FUNC(_PyInitError) _Py_InitializeFromArgs(
Victor Stinner484f20d2019-03-27 02:04:16 +010036 const _PyCoreConfig *config,
Victor Stinner5ac27a52019-03-27 13:40:14 +010037 int argc,
38 char **argv);
39PyAPI_FUNC(_PyInitError) _Py_InitializeFromWideArgs(
40 const _PyCoreConfig *config,
41 int argc,
42 wchar_t **argv);
43
Victor Stinner2f549082019-03-29 15:13:46 +010044PyAPI_FUNC(int) _Py_RunMain(void);
45
46
Victor Stinnerdfe88472019-03-01 12:14:41 +010047PyAPI_FUNC(void) _Py_NO_RETURN _Py_ExitInitError(_PyInitError err);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010048
49/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
50 * exit functions.
51 */
52PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
53
54/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
55PyAPI_FUNC(void) _Py_RestoreSignals(void);
56
57PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
58
59PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
60
61PyAPI_FUNC(const char *) _Py_gitidentifier(void);
62PyAPI_FUNC(const char *) _Py_gitversion(void);
63
Victor Stinnerdd12aa02018-11-27 00:12:05 +010064PyAPI_FUNC(int) _Py_IsFinalizing(void);
65
66/* Random */
67PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
68PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
69
70/* Legacy locale support */
71PyAPI_FUNC(void) _Py_CoerceLegacyLocale(int warn);
72PyAPI_FUNC(int) _Py_LegacyLocaleDetected(void);
73PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
74
75#ifdef __cplusplus
76}
77#endif