Mercurial > repos > yating-l > jbrowsearchivecreator
comparison test/include/python2.7/pyerrors.h @ 3:7d1a9a91b989 draft
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
| author | yating-l |
|---|---|
| date | Thu, 18 May 2017 18:37:28 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 2:3e2160197902 | 3:7d1a9a91b989 |
|---|---|
| 1 #ifndef Py_ERRORS_H | |
| 2 #define Py_ERRORS_H | |
| 3 #ifdef __cplusplus | |
| 4 extern "C" { | |
| 5 #endif | |
| 6 | |
| 7 /* Error objects */ | |
| 8 | |
| 9 typedef struct { | |
| 10 PyObject_HEAD | |
| 11 PyObject *dict; | |
| 12 PyObject *args; | |
| 13 PyObject *message; | |
| 14 } PyBaseExceptionObject; | |
| 15 | |
| 16 typedef struct { | |
| 17 PyObject_HEAD | |
| 18 PyObject *dict; | |
| 19 PyObject *args; | |
| 20 PyObject *message; | |
| 21 PyObject *msg; | |
| 22 PyObject *filename; | |
| 23 PyObject *lineno; | |
| 24 PyObject *offset; | |
| 25 PyObject *text; | |
| 26 PyObject *print_file_and_line; | |
| 27 } PySyntaxErrorObject; | |
| 28 | |
| 29 #ifdef Py_USING_UNICODE | |
| 30 typedef struct { | |
| 31 PyObject_HEAD | |
| 32 PyObject *dict; | |
| 33 PyObject *args; | |
| 34 PyObject *message; | |
| 35 PyObject *encoding; | |
| 36 PyObject *object; | |
| 37 Py_ssize_t start; | |
| 38 Py_ssize_t end; | |
| 39 PyObject *reason; | |
| 40 } PyUnicodeErrorObject; | |
| 41 #endif | |
| 42 | |
| 43 typedef struct { | |
| 44 PyObject_HEAD | |
| 45 PyObject *dict; | |
| 46 PyObject *args; | |
| 47 PyObject *message; | |
| 48 PyObject *code; | |
| 49 } PySystemExitObject; | |
| 50 | |
| 51 typedef struct { | |
| 52 PyObject_HEAD | |
| 53 PyObject *dict; | |
| 54 PyObject *args; | |
| 55 PyObject *message; | |
| 56 PyObject *myerrno; | |
| 57 PyObject *strerror; | |
| 58 PyObject *filename; | |
| 59 } PyEnvironmentErrorObject; | |
| 60 | |
| 61 #ifdef MS_WINDOWS | |
| 62 typedef struct { | |
| 63 PyObject_HEAD | |
| 64 PyObject *dict; | |
| 65 PyObject *args; | |
| 66 PyObject *message; | |
| 67 PyObject *myerrno; | |
| 68 PyObject *strerror; | |
| 69 PyObject *filename; | |
| 70 PyObject *winerror; | |
| 71 } PyWindowsErrorObject; | |
| 72 #endif | |
| 73 | |
| 74 /* Error handling definitions */ | |
| 75 | |
| 76 PyAPI_FUNC(void) PyErr_SetNone(PyObject *); | |
| 77 PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *); | |
| 78 PyAPI_FUNC(void) PyErr_SetString(PyObject *, const char *); | |
| 79 PyAPI_FUNC(PyObject *) PyErr_Occurred(void); | |
| 80 PyAPI_FUNC(void) PyErr_Clear(void); | |
| 81 PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **); | |
| 82 PyAPI_FUNC(void) PyErr_Restore(PyObject *, PyObject *, PyObject *); | |
| 83 | |
| 84 #ifdef Py_DEBUG | |
| 85 #define _PyErr_OCCURRED() PyErr_Occurred() | |
| 86 #else | |
| 87 #define _PyErr_OCCURRED() (_PyThreadState_Current->curexc_type) | |
| 88 #endif | |
| 89 | |
| 90 /* Error testing and normalization */ | |
| 91 PyAPI_FUNC(int) PyErr_GivenExceptionMatches(PyObject *, PyObject *); | |
| 92 PyAPI_FUNC(int) PyErr_ExceptionMatches(PyObject *); | |
| 93 PyAPI_FUNC(void) PyErr_NormalizeException(PyObject**, PyObject**, PyObject**); | |
| 94 PyAPI_FUNC(void) _PyErr_ReplaceException(PyObject *, PyObject *, PyObject *); | |
| 95 | |
| 96 /* */ | |
| 97 | |
| 98 #define PyExceptionClass_Check(x) \ | |
| 99 (PyClass_Check((x)) || (PyType_Check((x)) && \ | |
| 100 PyType_FastSubclass((PyTypeObject*)(x), Py_TPFLAGS_BASE_EXC_SUBCLASS))) | |
| 101 | |
| 102 #define PyExceptionInstance_Check(x) \ | |
| 103 (PyInstance_Check((x)) || \ | |
| 104 PyType_FastSubclass((x)->ob_type, Py_TPFLAGS_BASE_EXC_SUBCLASS)) | |
| 105 | |
| 106 #define PyExceptionClass_Name(x) \ | |
| 107 (PyClass_Check((x)) \ | |
| 108 ? PyString_AS_STRING(((PyClassObject*)(x))->cl_name) \ | |
| 109 : (char *)(((PyTypeObject*)(x))->tp_name)) | |
| 110 | |
| 111 #define PyExceptionInstance_Class(x) \ | |
| 112 ((PyInstance_Check((x)) \ | |
| 113 ? (PyObject*)((PyInstanceObject*)(x))->in_class \ | |
| 114 : (PyObject*)((x)->ob_type))) | |
| 115 | |
| 116 | |
| 117 /* Predefined exceptions */ | |
| 118 | |
| 119 PyAPI_DATA(PyObject *) PyExc_BaseException; | |
| 120 PyAPI_DATA(PyObject *) PyExc_Exception; | |
| 121 PyAPI_DATA(PyObject *) PyExc_StopIteration; | |
| 122 PyAPI_DATA(PyObject *) PyExc_GeneratorExit; | |
| 123 PyAPI_DATA(PyObject *) PyExc_StandardError; | |
| 124 PyAPI_DATA(PyObject *) PyExc_ArithmeticError; | |
| 125 PyAPI_DATA(PyObject *) PyExc_LookupError; | |
| 126 | |
| 127 PyAPI_DATA(PyObject *) PyExc_AssertionError; | |
| 128 PyAPI_DATA(PyObject *) PyExc_AttributeError; | |
| 129 PyAPI_DATA(PyObject *) PyExc_EOFError; | |
| 130 PyAPI_DATA(PyObject *) PyExc_FloatingPointError; | |
| 131 PyAPI_DATA(PyObject *) PyExc_EnvironmentError; | |
| 132 PyAPI_DATA(PyObject *) PyExc_IOError; | |
| 133 PyAPI_DATA(PyObject *) PyExc_OSError; | |
| 134 PyAPI_DATA(PyObject *) PyExc_ImportError; | |
| 135 PyAPI_DATA(PyObject *) PyExc_IndexError; | |
| 136 PyAPI_DATA(PyObject *) PyExc_KeyError; | |
| 137 PyAPI_DATA(PyObject *) PyExc_KeyboardInterrupt; | |
| 138 PyAPI_DATA(PyObject *) PyExc_MemoryError; | |
| 139 PyAPI_DATA(PyObject *) PyExc_NameError; | |
| 140 PyAPI_DATA(PyObject *) PyExc_OverflowError; | |
| 141 PyAPI_DATA(PyObject *) PyExc_RuntimeError; | |
| 142 PyAPI_DATA(PyObject *) PyExc_NotImplementedError; | |
| 143 PyAPI_DATA(PyObject *) PyExc_SyntaxError; | |
| 144 PyAPI_DATA(PyObject *) PyExc_IndentationError; | |
| 145 PyAPI_DATA(PyObject *) PyExc_TabError; | |
| 146 PyAPI_DATA(PyObject *) PyExc_ReferenceError; | |
| 147 PyAPI_DATA(PyObject *) PyExc_SystemError; | |
| 148 PyAPI_DATA(PyObject *) PyExc_SystemExit; | |
| 149 PyAPI_DATA(PyObject *) PyExc_TypeError; | |
| 150 PyAPI_DATA(PyObject *) PyExc_UnboundLocalError; | |
| 151 PyAPI_DATA(PyObject *) PyExc_UnicodeError; | |
| 152 PyAPI_DATA(PyObject *) PyExc_UnicodeEncodeError; | |
| 153 PyAPI_DATA(PyObject *) PyExc_UnicodeDecodeError; | |
| 154 PyAPI_DATA(PyObject *) PyExc_UnicodeTranslateError; | |
| 155 PyAPI_DATA(PyObject *) PyExc_ValueError; | |
| 156 PyAPI_DATA(PyObject *) PyExc_ZeroDivisionError; | |
| 157 #ifdef MS_WINDOWS | |
| 158 PyAPI_DATA(PyObject *) PyExc_WindowsError; | |
| 159 #endif | |
| 160 #ifdef __VMS | |
| 161 PyAPI_DATA(PyObject *) PyExc_VMSError; | |
| 162 #endif | |
| 163 | |
| 164 PyAPI_DATA(PyObject *) PyExc_BufferError; | |
| 165 | |
| 166 PyAPI_DATA(PyObject *) PyExc_MemoryErrorInst; | |
| 167 PyAPI_DATA(PyObject *) PyExc_RecursionErrorInst; | |
| 168 | |
| 169 /* Predefined warning categories */ | |
| 170 PyAPI_DATA(PyObject *) PyExc_Warning; | |
| 171 PyAPI_DATA(PyObject *) PyExc_UserWarning; | |
| 172 PyAPI_DATA(PyObject *) PyExc_DeprecationWarning; | |
| 173 PyAPI_DATA(PyObject *) PyExc_PendingDeprecationWarning; | |
| 174 PyAPI_DATA(PyObject *) PyExc_SyntaxWarning; | |
| 175 PyAPI_DATA(PyObject *) PyExc_RuntimeWarning; | |
| 176 PyAPI_DATA(PyObject *) PyExc_FutureWarning; | |
| 177 PyAPI_DATA(PyObject *) PyExc_ImportWarning; | |
| 178 PyAPI_DATA(PyObject *) PyExc_UnicodeWarning; | |
| 179 PyAPI_DATA(PyObject *) PyExc_BytesWarning; | |
| 180 | |
| 181 | |
| 182 /* Convenience functions */ | |
| 183 | |
| 184 PyAPI_FUNC(int) PyErr_BadArgument(void); | |
| 185 PyAPI_FUNC(PyObject *) PyErr_NoMemory(void); | |
| 186 PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *); | |
| 187 PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject( | |
| 188 PyObject *, PyObject *); | |
| 189 PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename( | |
| 190 PyObject *, const char *); | |
| 191 #ifdef MS_WINDOWS | |
| 192 PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename( | |
| 193 PyObject *, const Py_UNICODE *); | |
| 194 #endif /* MS_WINDOWS */ | |
| 195 | |
| 196 PyAPI_FUNC(PyObject *) PyErr_Format(PyObject *, const char *, ...) | |
| 197 Py_GCC_ATTRIBUTE((format(printf, 2, 3))); | |
| 198 | |
| 199 #ifdef MS_WINDOWS | |
| 200 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithFilenameObject( | |
| 201 int, const char *); | |
| 202 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithFilename( | |
| 203 int, const char *); | |
| 204 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithUnicodeFilename( | |
| 205 int, const Py_UNICODE *); | |
| 206 PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErr(int); | |
| 207 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObject( | |
| 208 PyObject *,int, PyObject *); | |
| 209 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilename( | |
| 210 PyObject *,int, const char *); | |
| 211 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithUnicodeFilename( | |
| 212 PyObject *,int, const Py_UNICODE *); | |
| 213 PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErr(PyObject *, int); | |
| 214 #endif /* MS_WINDOWS */ | |
| 215 | |
| 216 /* Export the old function so that the existing API remains available: */ | |
| 217 PyAPI_FUNC(void) PyErr_BadInternalCall(void); | |
| 218 PyAPI_FUNC(void) _PyErr_BadInternalCall(const char *filename, int lineno); | |
| 219 /* Mask the old API with a call to the new API for code compiled under | |
| 220 Python 2.0: */ | |
| 221 #define PyErr_BadInternalCall() _PyErr_BadInternalCall(__FILE__, __LINE__) | |
| 222 | |
| 223 /* Function to create a new exception */ | |
| 224 PyAPI_FUNC(PyObject *) PyErr_NewException( | |
| 225 char *name, PyObject *base, PyObject *dict); | |
| 226 PyAPI_FUNC(PyObject *) PyErr_NewExceptionWithDoc( | |
| 227 char *name, char *doc, PyObject *base, PyObject *dict); | |
| 228 PyAPI_FUNC(void) PyErr_WriteUnraisable(PyObject *); | |
| 229 | |
| 230 /* In sigcheck.c or signalmodule.c */ | |
| 231 PyAPI_FUNC(int) PyErr_CheckSignals(void); | |
| 232 PyAPI_FUNC(void) PyErr_SetInterrupt(void); | |
| 233 | |
| 234 /* In signalmodule.c */ | |
| 235 int PySignal_SetWakeupFd(int fd); | |
| 236 | |
| 237 /* Support for adding program text to SyntaxErrors */ | |
| 238 PyAPI_FUNC(void) PyErr_SyntaxLocation(const char *, int); | |
| 239 PyAPI_FUNC(PyObject *) PyErr_ProgramText(const char *, int); | |
| 240 | |
| 241 #ifdef Py_USING_UNICODE | |
| 242 /* The following functions are used to create and modify unicode | |
| 243 exceptions from C */ | |
| 244 | |
| 245 /* create a UnicodeDecodeError object */ | |
| 246 PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_Create( | |
| 247 const char *, const char *, Py_ssize_t, Py_ssize_t, Py_ssize_t, const char *); | |
| 248 | |
| 249 /* create a UnicodeEncodeError object */ | |
| 250 PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_Create( | |
| 251 const char *, const Py_UNICODE *, Py_ssize_t, Py_ssize_t, Py_ssize_t, const char *); | |
| 252 | |
| 253 /* create a UnicodeTranslateError object */ | |
| 254 PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create( | |
| 255 const Py_UNICODE *, Py_ssize_t, Py_ssize_t, Py_ssize_t, const char *); | |
| 256 | |
| 257 /* get the encoding attribute */ | |
| 258 PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetEncoding(PyObject *); | |
| 259 PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetEncoding(PyObject *); | |
| 260 | |
| 261 /* get the object attribute */ | |
| 262 PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetObject(PyObject *); | |
| 263 PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetObject(PyObject *); | |
| 264 PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetObject(PyObject *); | |
| 265 | |
| 266 /* get the value of the start attribute (the int * may not be NULL) | |
| 267 return 0 on success, -1 on failure */ | |
| 268 PyAPI_FUNC(int) PyUnicodeEncodeError_GetStart(PyObject *, Py_ssize_t *); | |
| 269 PyAPI_FUNC(int) PyUnicodeDecodeError_GetStart(PyObject *, Py_ssize_t *); | |
| 270 PyAPI_FUNC(int) PyUnicodeTranslateError_GetStart(PyObject *, Py_ssize_t *); | |
| 271 | |
| 272 /* assign a new value to the start attribute | |
| 273 return 0 on success, -1 on failure */ | |
| 274 PyAPI_FUNC(int) PyUnicodeEncodeError_SetStart(PyObject *, Py_ssize_t); | |
| 275 PyAPI_FUNC(int) PyUnicodeDecodeError_SetStart(PyObject *, Py_ssize_t); | |
| 276 PyAPI_FUNC(int) PyUnicodeTranslateError_SetStart(PyObject *, Py_ssize_t); | |
| 277 | |
| 278 /* get the value of the end attribute (the int *may not be NULL) | |
| 279 return 0 on success, -1 on failure */ | |
| 280 PyAPI_FUNC(int) PyUnicodeEncodeError_GetEnd(PyObject *, Py_ssize_t *); | |
| 281 PyAPI_FUNC(int) PyUnicodeDecodeError_GetEnd(PyObject *, Py_ssize_t *); | |
| 282 PyAPI_FUNC(int) PyUnicodeTranslateError_GetEnd(PyObject *, Py_ssize_t *); | |
| 283 | |
| 284 /* assign a new value to the end attribute | |
| 285 return 0 on success, -1 on failure */ | |
| 286 PyAPI_FUNC(int) PyUnicodeEncodeError_SetEnd(PyObject *, Py_ssize_t); | |
| 287 PyAPI_FUNC(int) PyUnicodeDecodeError_SetEnd(PyObject *, Py_ssize_t); | |
| 288 PyAPI_FUNC(int) PyUnicodeTranslateError_SetEnd(PyObject *, Py_ssize_t); | |
| 289 | |
| 290 /* get the value of the reason attribute */ | |
| 291 PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetReason(PyObject *); | |
| 292 PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetReason(PyObject *); | |
| 293 PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetReason(PyObject *); | |
| 294 | |
| 295 /* assign a new value to the reason attribute | |
| 296 return 0 on success, -1 on failure */ | |
| 297 PyAPI_FUNC(int) PyUnicodeEncodeError_SetReason( | |
| 298 PyObject *, const char *); | |
| 299 PyAPI_FUNC(int) PyUnicodeDecodeError_SetReason( | |
| 300 PyObject *, const char *); | |
| 301 PyAPI_FUNC(int) PyUnicodeTranslateError_SetReason( | |
| 302 PyObject *, const char *); | |
| 303 #endif | |
| 304 | |
| 305 | |
| 306 /* These APIs aren't really part of the error implementation, but | |
| 307 often needed to format error messages; the native C lib APIs are | |
| 308 not available on all platforms, which is why we provide emulations | |
| 309 for those platforms in Python/mysnprintf.c, | |
| 310 WARNING: The return value of snprintf varies across platforms; do | |
| 311 not rely on any particular behavior; eventually the C99 defn may | |
| 312 be reliable. | |
| 313 */ | |
| 314 #if defined(MS_WIN32) && !defined(HAVE_SNPRINTF) | |
| 315 # define HAVE_SNPRINTF | |
| 316 # define snprintf _snprintf | |
| 317 # define vsnprintf _vsnprintf | |
| 318 #endif | |
| 319 | |
| 320 #include <stdarg.h> | |
| 321 PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char *format, ...) | |
| 322 Py_GCC_ATTRIBUTE((format(printf, 3, 4))); | |
| 323 PyAPI_FUNC(int) PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va) | |
| 324 Py_GCC_ATTRIBUTE((format(printf, 3, 0))); | |
| 325 | |
| 326 #ifdef __cplusplus | |
| 327 } | |
| 328 #endif | |
| 329 #endif /* !Py_ERRORS_H */ |
