blob: 2f3a0dbdfe64c52f3dcc29c04654628baaf0a146 [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 Stinner331a6a52019-05-27 16:39:22 +020017PyAPI_FUNC(PyStatus) Py_PreInitialize(
18 const PyPreConfig *src_config);
19PyAPI_FUNC(PyStatus) Py_PreInitializeFromBytesArgs(
20 const PyPreConfig *src_config,
Victor Stinnerb5947842019-05-18 00:38:16 +020021 Py_ssize_t argc,
Victor Stinner5ac27a52019-03-27 13:40:14 +010022 char **argv);
Victor Stinner331a6a52019-05-27 16:39:22 +020023PyAPI_FUNC(PyStatus) Py_PreInitializeFromArgs(
24 const PyPreConfig *src_config,
Victor Stinnerb5947842019-05-18 00:38:16 +020025 Py_ssize_t argc,
Victor Stinner5ac27a52019-03-27 13:40:14 +010026 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
Victor Stinner331a6a52019-05-27 16:39:22 +020033PyAPI_FUNC(PyStatus) Py_InitializeFromConfig(
34 const PyConfig *config);
35PyAPI_FUNC(PyStatus) _Py_InitializeFromArgs(
36 const PyConfig *config,
Victor Stinnerb5947842019-05-18 00:38:16 +020037 Py_ssize_t argc,
Victor Stinner6d1c4672019-05-20 11:02:00 +020038 char * const *argv);
Victor Stinner331a6a52019-05-27 16:39:22 +020039PyAPI_FUNC(PyStatus) _Py_InitializeFromWideArgs(
40 const PyConfig *config,
Victor Stinnerb5947842019-05-18 00:38:16 +020041 Py_ssize_t argc,
Victor Stinner6d1c4672019-05-20 11:02:00 +020042 wchar_t * const *argv);
Victor Stinner331a6a52019-05-27 16:39:22 +020043PyAPI_FUNC(PyStatus) _Py_InitializeMain(void);
Victor Stinner5ac27a52019-03-27 13:40:14 +010044
Victor Stinner331a6a52019-05-27 16:39:22 +020045PyAPI_FUNC(int) Py_RunMain(void);
Victor Stinner2f549082019-03-29 15:13:46 +010046
47
Victor Stinner331a6a52019-05-27 16:39:22 +020048PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010049
50/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
51 * exit functions.
52 */
53PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
54
55/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
56PyAPI_FUNC(void) _Py_RestoreSignals(void);
57
58PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
59
60PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
61
62PyAPI_FUNC(const char *) _Py_gitidentifier(void);
63PyAPI_FUNC(const char *) _Py_gitversion(void);
64
Victor Stinnerdd12aa02018-11-27 00:12:05 +010065PyAPI_FUNC(int) _Py_IsFinalizing(void);
66
67/* Random */
68PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
69PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
70
71/* Legacy locale support */
Victor Stinner0f721472019-05-20 17:16:38 +020072PyAPI_FUNC(int) _Py_CoerceLegacyLocale(int warn);
73PyAPI_FUNC(int) _Py_LegacyLocaleDetected(int warn);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010074PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
75
76#ifdef __cplusplus
77}
78#endif