2019-05-24 17:01:38 +02:00
|
|
|
#ifndef Py_INTERNAL_PYERRORS_H
|
|
|
|
#define Py_INTERNAL_PYERRORS_H
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef Py_BUILD_CORE
|
|
|
|
# error "this header requires Py_BUILD_CORE define"
|
|
|
|
#endif
|
|
|
|
|
2021-12-09 20:59:26 +01:00
|
|
|
|
|
|
|
/* runtime lifecycle */
|
|
|
|
|
|
|
|
extern PyStatus _PyErr_InitTypes(PyInterpreterState *);
|
|
|
|
|
|
|
|
|
|
|
|
/* other API */
|
|
|
|
|
2019-05-24 17:01:38 +02:00
|
|
|
static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
|
|
|
|
{
|
2019-11-07 12:42:07 +01:00
|
|
|
assert(tstate != NULL);
|
|
|
|
return tstate->curexc_type;
|
2019-05-24 17:01:38 +02:00
|
|
|
}
|
|
|
|
|
2020-05-18 07:47:31 +02:00
|
|
|
static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
|
|
|
|
{
|
|
|
|
PyObject *t, *v, *tb;
|
|
|
|
t = exc_state->exc_type;
|
|
|
|
v = exc_state->exc_value;
|
|
|
|
tb = exc_state->exc_traceback;
|
|
|
|
exc_state->exc_type = NULL;
|
|
|
|
exc_state->exc_value = NULL;
|
|
|
|
exc_state->exc_traceback = NULL;
|
|
|
|
Py_XDECREF(t);
|
|
|
|
Py_XDECREF(v);
|
|
|
|
Py_XDECREF(tb);
|
|
|
|
}
|
|
|
|
|
2021-11-25 10:41:28 +01:00
|
|
|
PyAPI_FUNC(PyObject*) _PyErr_StackItemToExcInfoTuple(
|
|
|
|
_PyErr_StackItem *err_info);
|
2019-05-24 17:01:38 +02:00
|
|
|
|
|
|
|
PyAPI_FUNC(void) _PyErr_Fetch(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject **type,
|
|
|
|
PyObject **value,
|
|
|
|
PyObject **traceback);
|
|
|
|
|
|
|
|
PyAPI_FUNC(int) _PyErr_ExceptionMatches(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject *exc);
|
|
|
|
|
|
|
|
PyAPI_FUNC(void) _PyErr_Restore(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject *type,
|
|
|
|
PyObject *value,
|
|
|
|
PyObject *traceback);
|
|
|
|
|
|
|
|
PyAPI_FUNC(void) _PyErr_SetObject(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject *type,
|
|
|
|
PyObject *value);
|
|
|
|
|
2020-05-18 07:47:31 +02:00
|
|
|
PyAPI_FUNC(void) _PyErr_ChainStackItem(
|
2020-05-22 22:33:27 +02:00
|
|
|
_PyErr_StackItem *exc_info);
|
2020-05-18 07:47:31 +02:00
|
|
|
|
2019-05-24 17:01:38 +02:00
|
|
|
PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
|
|
|
|
|
|
|
|
PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
|
|
|
|
|
2019-06-13 22:41:23 +02:00
|
|
|
PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
|
|
|
|
|
2019-05-24 17:01:38 +02:00
|
|
|
PyAPI_FUNC(void) _PyErr_SetString(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject *exception,
|
|
|
|
const char *string);
|
|
|
|
|
|
|
|
PyAPI_FUNC(PyObject *) _PyErr_Format(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject *exception,
|
|
|
|
const char *format,
|
|
|
|
...);
|
|
|
|
|
|
|
|
PyAPI_FUNC(void) _PyErr_NormalizeException(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject **exc,
|
|
|
|
PyObject **val,
|
|
|
|
PyObject **tb);
|
|
|
|
|
2019-11-05 01:22:12 +01:00
|
|
|
PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
|
|
|
|
PyThreadState *tstate,
|
|
|
|
PyObject *exception,
|
|
|
|
const char *format,
|
|
|
|
...);
|
|
|
|
|
2021-12-14 17:48:15 +01:00
|
|
|
PyAPI_FUNC(PyObject *) _PyExc_CreateExceptionGroup(
|
|
|
|
const char *msg,
|
|
|
|
PyObject *excs);
|
|
|
|
|
|
|
|
PyAPI_FUNC(PyObject *) _PyExc_ExceptionGroupProjection(
|
|
|
|
PyObject *left,
|
|
|
|
PyObject *right);
|
|
|
|
|
2020-03-26 22:28:11 +01:00
|
|
|
PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
|
|
|
|
|
2021-01-18 20:47:13 +01:00
|
|
|
PyAPI_FUNC(void) _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
|
|
|
|
|
2021-04-14 03:36:07 +02:00
|
|
|
extern PyObject* _Py_Offer_Suggestions(PyObject* exception);
|
2021-05-03 17:47:27 +02:00
|
|
|
PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,
|
|
|
|
Py_ssize_t max_cost);
|
2021-04-14 03:36:07 +02:00
|
|
|
|
2021-09-21 23:04:34 +02:00
|
|
|
PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc(
|
|
|
|
const char *func,
|
|
|
|
const char *message);
|
|
|
|
|
|
|
|
#define _Py_FatalRefcountError(message) _Py_FatalRefcountErrorFunc(__func__, message)
|
|
|
|
|
2019-05-24 17:01:38 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif /* !Py_INTERNAL_PYERRORS_H */
|