blob: 13f7a26ba12d02e1d2a3f11b4fa07ea6e8cc4d46 [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
Victor Stinnerdd12aa02018-11-27 00:12:05 +01005/* Only used by applications that embed the interpreter and need to
6 * override the standard encoding determination mechanism
7 */
8PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
9 const char *errors);
10
11/* PEP 432 Multi-phase initialization API (Private while provisional!) */
12
Victor Stinner331a6a52019-05-27 16:39:22 +020013PyAPI_FUNC(PyStatus) Py_PreInitialize(
14 const PyPreConfig *src_config);
15PyAPI_FUNC(PyStatus) Py_PreInitializeFromBytesArgs(
16 const PyPreConfig *src_config,
Victor Stinnerb5947842019-05-18 00:38:16 +020017 Py_ssize_t argc,
Victor Stinner5ac27a52019-03-27 13:40:14 +010018 char **argv);
Victor Stinner331a6a52019-05-27 16:39:22 +020019PyAPI_FUNC(PyStatus) Py_PreInitializeFromArgs(
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 wchar_t **argv);
Victor Stinnerf29084d2019-03-20 02:20:13 +010023
Victor Stinnerdd12aa02018-11-27 00:12:05 +010024PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
25
26
Victor Stinnerdd12aa02018-11-27 00:12:05 +010027/* Initialization and finalization */
28
Victor Stinner331a6a52019-05-27 16:39:22 +020029PyAPI_FUNC(PyStatus) Py_InitializeFromConfig(
30 const PyConfig *config);
Victor Stinner331a6a52019-05-27 16:39:22 +020031PyAPI_FUNC(PyStatus) _Py_InitializeMain(void);
Victor Stinner5ac27a52019-03-27 13:40:14 +010032
Victor Stinner331a6a52019-05-27 16:39:22 +020033PyAPI_FUNC(int) Py_RunMain(void);
Victor Stinner2f549082019-03-29 15:13:46 +010034
35
Victor Stinner331a6a52019-05-27 16:39:22 +020036PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010037
Victor Stinnerdd12aa02018-11-27 00:12:05 +010038/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
39PyAPI_FUNC(void) _Py_RestoreSignals(void);
40
41PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
Victor Stinnera82f63f2020-12-09 22:37:27 +010042PyAPI_FUNC(int) _Py_FdIsInteractive(FILE *fp, PyObject *filename);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010043
44PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
45
46PyAPI_FUNC(const char *) _Py_gitidentifier(void);
47PyAPI_FUNC(const char *) _Py_gitversion(void);
48
Victor Stinnerdd12aa02018-11-27 00:12:05 +010049PyAPI_FUNC(int) _Py_IsFinalizing(void);
50
51/* Random */
52PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
53PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
54
55/* Legacy locale support */
Victor Stinner0f721472019-05-20 17:16:38 +020056PyAPI_FUNC(int) _Py_CoerceLegacyLocale(int warn);
57PyAPI_FUNC(int) _Py_LegacyLocaleDetected(int warn);
Victor Stinnerdd12aa02018-11-27 00:12:05 +010058PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
59
Victor Stinner252346a2020-05-01 11:33:44 +020060PyAPI_FUNC(PyThreadState *) _Py_NewInterpreter(int isolated_subinterpreter);