File indexing completed on 2025-11-19 09:50:49
0001 #ifndef Py_INTERNAL_LIFECYCLE_H
0002 #define Py_INTERNAL_LIFECYCLE_H
0003 #ifdef __cplusplus
0004 extern "C" {
0005 #endif
0006
0007 #ifndef Py_BUILD_CORE
0008 # error "this header requires Py_BUILD_CORE define"
0009 #endif
0010
0011 #include "pycore_runtime.h" // _PyRuntimeState
0012
0013
0014 struct _PyArgv;
0015 struct pyruntimestate;
0016
0017 extern int _Py_SetFileSystemEncoding(
0018 const char *encoding,
0019 const char *errors);
0020 extern void _Py_ClearFileSystemEncoding(void);
0021 extern PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate);
0022 #ifdef MS_WINDOWS
0023 extern int _PyUnicode_EnableLegacyWindowsFSEncoding(void);
0024 #endif
0025
0026 extern int _Py_IsLocaleCoercionTarget(const char *ctype_loc);
0027
0028
0029
0030 extern void _Py_InitVersion(void);
0031 extern PyStatus _PyFaulthandler_Init(int enable);
0032 extern PyObject * _PyBuiltin_Init(PyInterpreterState *interp);
0033 extern PyStatus _PySys_Create(
0034 PyThreadState *tstate,
0035 PyObject **sysmod_p);
0036 extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options);
0037 extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config);
0038 extern int _PySys_UpdateConfig(PyThreadState *tstate);
0039 extern void _PySys_FiniTypes(PyInterpreterState *interp);
0040 extern int _PyBuiltins_AddExceptions(PyObject * bltinmod);
0041 extern PyStatus _Py_HashRandomization_Init(const PyConfig *);
0042
0043 extern PyStatus _PyGC_Init(PyInterpreterState *interp);
0044 extern PyStatus _PyAtExit_Init(PyInterpreterState *interp);
0045
0046
0047
0048 extern int _PySignal_Init(int install_signal_handlers);
0049 extern void _PySignal_Fini(void);
0050
0051 extern void _PyGC_Fini(PyInterpreterState *interp);
0052 extern void _Py_HashRandomization_Fini(void);
0053 extern void _PyFaulthandler_Fini(void);
0054 extern void _PyHash_Fini(void);
0055 extern void _PyTraceMalloc_Fini(void);
0056 extern void _PyWarnings_Fini(PyInterpreterState *interp);
0057 extern void _PyAST_Fini(PyInterpreterState *interp);
0058 extern void _PyAtExit_Fini(PyInterpreterState *interp);
0059 extern void _PyThread_FiniType(PyInterpreterState *interp);
0060 extern void _PyArg_Fini(void);
0061 extern void _Py_FinalizeAllocatedBlocks(_PyRuntimeState *);
0062
0063 extern PyStatus _PyGILState_Init(PyInterpreterState *interp);
0064 extern void _PyGILState_SetTstate(PyThreadState *tstate);
0065 extern void _PyGILState_Fini(PyInterpreterState *interp);
0066
0067 extern void _PyGC_DumpShutdownStats(PyInterpreterState *interp);
0068
0069 extern PyStatus _Py_PreInitializeFromPyArgv(
0070 const PyPreConfig *src_config,
0071 const struct _PyArgv *args);
0072 extern PyStatus _Py_PreInitializeFromConfig(
0073 const PyConfig *config,
0074 const struct _PyArgv *args);
0075
0076 extern wchar_t * _Py_GetStdlibDir(void);
0077
0078 extern int _Py_HandleSystemExit(int *exitcode_p);
0079
0080 extern PyObject* _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable);
0081
0082 extern void _PyErr_Print(PyThreadState *tstate);
0083 extern void _PyErr_Display(PyObject *file, PyObject *exception,
0084 PyObject *value, PyObject *tb);
0085 extern void _PyErr_DisplayException(PyObject *file, PyObject *exc);
0086
0087 extern void _PyThreadState_DeleteCurrent(PyThreadState *tstate);
0088
0089 extern void _PyAtExit_Call(PyInterpreterState *interp);
0090
0091 extern int _Py_IsCoreInitialized(void);
0092
0093 extern int _Py_FdIsInteractive(FILE *fp, PyObject *filename);
0094
0095 extern const char* _Py_gitidentifier(void);
0096 extern const char* _Py_gitversion(void);
0097
0098
0099 PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp);
0100
0101
0102 extern int _PyOS_URandom(void *buffer, Py_ssize_t size);
0103
0104
0105 PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
0106
0107
0108 extern int _Py_CoerceLegacyLocale(int warn);
0109 extern int _Py_LegacyLocaleDetected(int warn);
0110
0111
0112 PyAPI_FUNC(char*) _Py_SetLocaleFromEnv(int category);
0113
0114
0115 int _PyRun_SimpleStringFlagsWithName(const char *command, const char* name, PyCompilerFlags *flags);
0116
0117
0118
0119
0120
0121 PyAPI_FUNC(int) _PyInterpreterConfig_InitFromState(
0122 PyInterpreterConfig *,
0123 PyInterpreterState *);
0124 PyAPI_FUNC(PyObject *) _PyInterpreterConfig_AsDict(PyInterpreterConfig *);
0125 PyAPI_FUNC(int) _PyInterpreterConfig_InitFromDict(
0126 PyInterpreterConfig *,
0127 PyObject *);
0128 PyAPI_FUNC(int) _PyInterpreterConfig_UpdateFromDict(
0129 PyInterpreterConfig *,
0130 PyObject *);
0131
0132
0133 #ifdef __cplusplus
0134 }
0135 #endif
0136 #endif