codekingpro/portable-devtools
115k
1#ifndef Py_INTERNAL_PYERRORS_H2#define Py_INTERNAL_PYERRORS_H3#ifdef __cplusplus4extern "C" {5#endif6 7#ifndef Py_BUILD_CORE8# error "this header requires Py_BUILD_CORE define"9#endif10 11 12/* Error handling definitions */13 14extern _PyErr_StackItem* _PyErr_GetTopmostException(PyThreadState *tstate);15extern PyObject* _PyErr_GetHandledException(PyThreadState *);16extern void _PyErr_SetHandledException(PyThreadState *, PyObject *);17extern void _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **);18 19// Export for '_testinternalcapi' shared extension20PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);21 22 23// Like PyErr_Format(), but saves current exception as __context__ and24// __cause__.25// Export for '_sqlite3' shared extension.26PyAPI_FUNC(PyObject*) _PyErr_FormatFromCause(27 PyObject *exception,28 const char *format, /* ASCII-encoded string */29 ...30 );31 32extern int _PyException_AddNote(33 PyObject *exc,34 PyObject *note);35 36extern int _PyErr_CheckSignals(void);37 38/* Support for adding program text to SyntaxErrors */39 40// Export for test_peg_generator41PyAPI_FUNC(PyObject*) _PyErr_ProgramDecodedTextObject(42 PyObject *filename,43 int lineno,44 const char* encoding);45 46extern PyObject* _PyUnicodeTranslateError_Create(47 PyObject *object,48 Py_ssize_t start,49 Py_ssize_t end,50 const char *reason /* UTF-8 encoded string */51 );52 53extern void _Py_NO_RETURN _Py_FatalErrorFormat(54 const char *func,55 const char *format,56 ...);57 58extern PyObject* _PyErr_SetImportErrorWithNameFrom(59 PyObject *,60 PyObject *,61 PyObject *,62 PyObject *);63extern int _PyErr_SetModuleNotFoundError(PyObject *name);64 65 66/* runtime lifecycle */67 68extern PyStatus _PyErr_InitTypes(PyInterpreterState *);69extern void _PyErr_FiniTypes(PyInterpreterState *);70 71 72/* other API */73 74static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)75{76 assert(tstate != NULL);77 if (tstate->current_exception == NULL) {78 return NULL;79 }80 return (PyObject *)Py_TYPE(tstate->current_exception);81}82 83static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)84{85 Py_CLEAR(exc_state->exc_value);86}87 88extern PyObject* _PyErr_StackItemToExcInfoTuple(89 _PyErr_StackItem *err_info);90 91extern void _PyErr_Fetch(92 PyThreadState *tstate,93 PyObject **type,94 PyObject **value,95 PyObject **traceback);96 97PyAPI_FUNC(PyObject*) _PyErr_GetRaisedException(PyThreadState *tstate);98 99PyAPI_FUNC(int) _PyErr_ExceptionMatches(100 PyThreadState *tstate,101 PyObject *exc);102 103PyAPI_FUNC(void) _PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc);104 105extern void _PyErr_Restore(106 PyThreadState *tstate,107 PyObject *type,108 PyObject *value,109 PyObject *traceback);110 111extern void _PyErr_SetObject(112 PyThreadState *tstate,113 PyObject *type,114 PyObject *value);115 116extern void _PyErr_ChainStackItem(void);117extern void _PyErr_ChainExceptions1Tstate(PyThreadState *, PyObject *);118 119PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);120 121extern void _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);122 123extern PyObject* _PyErr_NoMemory(PyThreadState *tstate);124 125extern int _PyErr_EmitSyntaxWarning(PyObject *msg, PyObject *filename, int lineno, int col_offset,126 int end_lineno, int end_col_offset);127extern void _PyErr_RaiseSyntaxError(PyObject *msg, PyObject *filename, int lineno, int col_offset,128 int end_lineno, int end_col_offset);129 130PyAPI_FUNC(void) _PyErr_SetString(131 PyThreadState *tstate,132 PyObject *exception,133 const char *string);134 135/*136 * Set an exception with the error message decoded from the current locale137 * encoding (LC_CTYPE).138 *139 * Exceptions occurring in decoding take priority over the desired exception.140 *141 * Exported for '_ctypes' shared extensions.142 */143PyAPI_FUNC(void) _PyErr_SetLocaleString(144 PyObject *exception,145 const char *string);146 147PyAPI_FUNC(PyObject*) _PyErr_Format(148 PyThreadState *tstate,149 PyObject *exception,150 const char *format,151 ...);152 153PyAPI_FUNC(PyObject*) _PyErr_FormatV(154 PyThreadState *tstate,155 PyObject *exception,156 const char *format,157 va_list vargs);158 159extern void _PyErr_NormalizeException(160 PyThreadState *tstate,161 PyObject **exc,162 PyObject **val,163 PyObject **tb);164 165extern PyObject* _PyErr_FormatFromCauseTstate(166 PyThreadState *tstate,167 PyObject *exception,168 const char *format,169 ...);170 171extern PyObject* _PyExc_CreateExceptionGroup(172 const char *msg,173 PyObject *excs);174 175extern PyObject* _PyExc_PrepReraiseStar(176 PyObject *orig,177 PyObject *excs);178 179extern int _PyErr_CheckSignalsTstate(PyThreadState *tstate);180 181extern void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);182extern PyObject* _Py_CalculateSuggestions(PyObject *dir, PyObject *name);183extern PyObject* _Py_Offer_Suggestions(PyObject* exception);184 185// Export for '_testinternalcapi' shared extension186PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,187 Py_ssize_t max_cost);188 189// Export for '_json' shared extension190PyAPI_FUNC(void) _PyErr_FormatNote(const char *format, ...);191 192/* Context manipulation (PEP 3134) */193 194Py_DEPRECATED(3.12) extern void _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);195 196// implementation detail for the codeop module.197// Exported for test.test_peg_generator.test_c_parser198PyAPI_DATA(PyTypeObject) _PyExc_IncompleteInputError;199#define PyExc_IncompleteInputError ((PyObject *)(&_PyExc_IncompleteInputError))200 201extern int _PyUnicodeError_GetParams(202 PyObject *self,203 PyObject **obj,204 Py_ssize_t *objlen,205 Py_ssize_t *start,206 Py_ssize_t *end,207 Py_ssize_t *slen,208 int as_bytes);209 210#ifdef __cplusplus211}212#endif213#endif /* !Py_INTERNAL_PYERRORS_H */214 