• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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