Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-11-19 09:50:49

0001 #ifndef Py_INTERNAL_PYERRORS_H
0002 #define Py_INTERNAL_PYERRORS_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 
0012 /* Error handling definitions */
0013 
0014 extern _PyErr_StackItem* _PyErr_GetTopmostException(PyThreadState *tstate);
0015 extern PyObject* _PyErr_GetHandledException(PyThreadState *);
0016 extern void _PyErr_SetHandledException(PyThreadState *, PyObject *);
0017 extern void _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **);
0018 
0019 // Export for '_testinternalcapi' shared extension
0020 PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);
0021 
0022 
0023 // Like PyErr_Format(), but saves current exception as __context__ and
0024 // __cause__.
0025 // Export for '_sqlite3' shared extension.
0026 PyAPI_FUNC(PyObject*) _PyErr_FormatFromCause(
0027     PyObject *exception,
0028     const char *format,   /* ASCII-encoded string  */
0029     ...
0030     );
0031 
0032 extern int _PyException_AddNote(
0033      PyObject *exc,
0034      PyObject *note);
0035 
0036 extern int _PyErr_CheckSignals(void);
0037 
0038 /* Support for adding program text to SyntaxErrors */
0039 
0040 // Export for test_peg_generator
0041 PyAPI_FUNC(PyObject*) _PyErr_ProgramDecodedTextObject(
0042     PyObject *filename,
0043     int lineno,
0044     const char* encoding);
0045 
0046 extern PyObject* _PyUnicodeTranslateError_Create(
0047     PyObject *object,
0048     Py_ssize_t start,
0049     Py_ssize_t end,
0050     const char *reason          /* UTF-8 encoded string */
0051     );
0052 
0053 extern void _Py_NO_RETURN _Py_FatalErrorFormat(
0054     const char *func,
0055     const char *format,
0056     ...);
0057 
0058 extern PyObject* _PyErr_SetImportErrorWithNameFrom(
0059         PyObject *,
0060         PyObject *,
0061         PyObject *,
0062         PyObject *);
0063 
0064 
0065 /* runtime lifecycle */
0066 
0067 extern PyStatus _PyErr_InitTypes(PyInterpreterState *);
0068 extern void _PyErr_FiniTypes(PyInterpreterState *);
0069 
0070 
0071 /* other API */
0072 
0073 static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
0074 {
0075     assert(tstate != NULL);
0076     if (tstate->current_exception == NULL) {
0077         return NULL;
0078     }
0079     return (PyObject *)Py_TYPE(tstate->current_exception);
0080 }
0081 
0082 static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
0083 {
0084     Py_CLEAR(exc_state->exc_value);
0085 }
0086 
0087 extern PyObject* _PyErr_StackItemToExcInfoTuple(
0088     _PyErr_StackItem *err_info);
0089 
0090 extern void _PyErr_Fetch(
0091     PyThreadState *tstate,
0092     PyObject **type,
0093     PyObject **value,
0094     PyObject **traceback);
0095 
0096 extern PyObject* _PyErr_GetRaisedException(PyThreadState *tstate);
0097 
0098 PyAPI_FUNC(int) _PyErr_ExceptionMatches(
0099     PyThreadState *tstate,
0100     PyObject *exc);
0101 
0102 extern void _PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc);
0103 
0104 extern void _PyErr_Restore(
0105     PyThreadState *tstate,
0106     PyObject *type,
0107     PyObject *value,
0108     PyObject *traceback);
0109 
0110 extern void _PyErr_SetObject(
0111     PyThreadState *tstate,
0112     PyObject *type,
0113     PyObject *value);
0114 
0115 extern void _PyErr_ChainStackItem(void);
0116 
0117 PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
0118 
0119 extern void _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
0120 
0121 extern PyObject* _PyErr_NoMemory(PyThreadState *tstate);
0122 
0123 PyAPI_FUNC(void) _PyErr_SetString(
0124     PyThreadState *tstate,
0125     PyObject *exception,
0126     const char *string);
0127 
0128 /*
0129  * Set an exception with the error message decoded from the current locale
0130  * encoding (LC_CTYPE).
0131  *
0132  * Exceptions occurring in decoding take priority over the desired exception.
0133  *
0134  * Exported for '_ctypes' shared extensions.
0135  */
0136 PyAPI_FUNC(void) _PyErr_SetLocaleString(
0137     PyObject *exception,
0138     const char *string);
0139 
0140 PyAPI_FUNC(PyObject*) _PyErr_Format(
0141     PyThreadState *tstate,
0142     PyObject *exception,
0143     const char *format,
0144     ...);
0145 
0146 extern void _PyErr_NormalizeException(
0147     PyThreadState *tstate,
0148     PyObject **exc,
0149     PyObject **val,
0150     PyObject **tb);
0151 
0152 extern PyObject* _PyErr_FormatFromCauseTstate(
0153     PyThreadState *tstate,
0154     PyObject *exception,
0155     const char *format,
0156     ...);
0157 
0158 extern PyObject* _PyExc_CreateExceptionGroup(
0159     const char *msg,
0160     PyObject *excs);
0161 
0162 extern PyObject* _PyExc_PrepReraiseStar(
0163     PyObject *orig,
0164     PyObject *excs);
0165 
0166 extern int _PyErr_CheckSignalsTstate(PyThreadState *tstate);
0167 
0168 extern void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
0169 extern PyObject* _Py_CalculateSuggestions(PyObject *dir, PyObject *name);
0170 extern PyObject* _Py_Offer_Suggestions(PyObject* exception);
0171 
0172 // Export for '_testinternalcapi' shared extension
0173 PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,
0174                                           Py_ssize_t max_cost);
0175 
0176 void _PyErr_FormatNote(const char *format, ...);
0177 
0178 /* Context manipulation (PEP 3134) */
0179 
0180 Py_DEPRECATED(3.12) extern void _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
0181 
0182 // implementation detail for the codeop module.
0183 // Exported for test.test_peg_generator.test_c_parser
0184 PyAPI_DATA(PyTypeObject) _PyExc_IncompleteInputError;
0185 #define PyExc_IncompleteInputError ((PyObject *)(&_PyExc_IncompleteInputError))
0186 
0187 #ifdef __cplusplus
0188 }
0189 #endif
0190 #endif /* !Py_INTERNAL_PYERRORS_H */