1 #ifndef Py_INTERNAL_PYERRORS_H
2 #define Py_INTERNAL_PYERRORS_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6
7 #ifndef Py_BUILD_CORE
8 # error "this header requires Py_BUILD_CORE define"
9 #endif
10
11
12 /* runtime lifecycle */
13
14 extern PyStatus _PyErr_InitTypes(PyInterpreterState *);
15 extern void _PyErr_FiniTypes(PyInterpreterState *);
16
17
18 /* other API */
19
_PyErr_Occurred(PyThreadState * tstate)20 static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
21 {
22 assert(tstate != NULL);
23 return tstate->curexc_type;
24 }
25
_PyErr_ClearExcState(_PyErr_StackItem * exc_state)26 static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
27 {
28 Py_CLEAR(exc_state->exc_value);
29 }
30
31 PyAPI_FUNC(PyObject*) _PyErr_StackItemToExcInfoTuple(
32 _PyErr_StackItem *err_info);
33
34 PyAPI_FUNC(void) _PyErr_Fetch(
35 PyThreadState *tstate,
36 PyObject **type,
37 PyObject **value,
38 PyObject **traceback);
39
40 PyAPI_FUNC(int) _PyErr_ExceptionMatches(
41 PyThreadState *tstate,
42 PyObject *exc);
43
44 PyAPI_FUNC(void) _PyErr_Restore(
45 PyThreadState *tstate,
46 PyObject *type,
47 PyObject *value,
48 PyObject *traceback);
49
50 PyAPI_FUNC(void) _PyErr_SetObject(
51 PyThreadState *tstate,
52 PyObject *type,
53 PyObject *value);
54
55 PyAPI_FUNC(void) _PyErr_ChainStackItem(
56 _PyErr_StackItem *exc_info);
57
58 PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
59
60 PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
61
62 PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
63
64 PyAPI_FUNC(void) _PyErr_SetString(
65 PyThreadState *tstate,
66 PyObject *exception,
67 const char *string);
68
69 PyAPI_FUNC(PyObject *) _PyErr_Format(
70 PyThreadState *tstate,
71 PyObject *exception,
72 const char *format,
73 ...);
74
75 PyAPI_FUNC(void) _PyErr_NormalizeException(
76 PyThreadState *tstate,
77 PyObject **exc,
78 PyObject **val,
79 PyObject **tb);
80
81 PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
82 PyThreadState *tstate,
83 PyObject *exception,
84 const char *format,
85 ...);
86
87 PyAPI_FUNC(PyObject *) _PyExc_CreateExceptionGroup(
88 const char *msg,
89 PyObject *excs);
90
91 PyAPI_FUNC(PyObject *) _PyExc_PrepReraiseStar(
92 PyObject *orig,
93 PyObject *excs);
94
95 PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
96
97 PyAPI_FUNC(void) _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
98
99 extern PyObject* _Py_Offer_Suggestions(PyObject* exception);
100 PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,
101 Py_ssize_t max_cost);
102
103 #ifdef __cplusplus
104 }
105 #endif
106 #endif /* !Py_INTERNAL_PYERRORS_H */
107