pyo3_ffi/cpython/
pyerrors.rs

1use crate::PyObject;
2#[cfg(not(any(PyPy, GraalPy)))]
3use crate::Py_ssize_t;
4
5#[repr(C)]
6#[derive(Debug)]
7pub struct PyBaseExceptionObject {
8    pub ob_base: PyObject,
9    #[cfg(not(PyPy))]
10    pub dict: *mut PyObject,
11    #[cfg(not(PyPy))]
12    pub args: *mut PyObject,
13    #[cfg(all(Py_3_11, not(PyPy)))]
14    pub notes: *mut PyObject,
15    #[cfg(not(PyPy))]
16    pub traceback: *mut PyObject,
17    #[cfg(not(PyPy))]
18    pub context: *mut PyObject,
19    #[cfg(not(PyPy))]
20    pub cause: *mut PyObject,
21    #[cfg(not(PyPy))]
22    pub suppress_context: char,
23}
24
25#[cfg(not(any(PyPy, GraalPy)))]
26#[repr(C)]
27#[derive(Debug)]
28pub struct PySyntaxErrorObject {
29    pub ob_base: PyObject,
30    pub dict: *mut PyObject,
31    pub args: *mut PyObject,
32    #[cfg(Py_3_11)]
33    pub notes: *mut PyObject,
34    pub traceback: *mut PyObject,
35    pub context: *mut PyObject,
36    pub cause: *mut PyObject,
37    pub suppress_context: char,
38
39    pub msg: *mut PyObject,
40    pub filename: *mut PyObject,
41    pub lineno: *mut PyObject,
42    pub offset: *mut PyObject,
43    #[cfg(Py_3_10)]
44    pub end_lineno: *mut PyObject,
45    #[cfg(Py_3_10)]
46    pub end_offset: *mut PyObject,
47    pub text: *mut PyObject,
48    pub print_file_and_line: *mut PyObject,
49    // TODO: uncomment for 3.14.0b1
50    // #[cfg(Py_3_14)]
51    // pub metadata: *mut PyObject,
52}
53
54#[cfg(not(any(PyPy, GraalPy)))]
55#[repr(C)]
56#[derive(Debug)]
57pub struct PyImportErrorObject {
58    pub ob_base: PyObject,
59    pub dict: *mut PyObject,
60    pub args: *mut PyObject,
61    #[cfg(Py_3_11)]
62    pub notes: *mut PyObject,
63    pub traceback: *mut PyObject,
64    pub context: *mut PyObject,
65    pub cause: *mut PyObject,
66    pub suppress_context: char,
67
68    pub msg: *mut PyObject,
69    pub name: *mut PyObject,
70    pub path: *mut PyObject,
71    #[cfg(Py_3_12)]
72    pub name_from: *mut PyObject,
73}
74
75#[cfg(not(any(PyPy, GraalPy)))]
76#[repr(C)]
77#[derive(Debug)]
78pub struct PyUnicodeErrorObject {
79    pub ob_base: PyObject,
80    pub dict: *mut PyObject,
81    pub args: *mut PyObject,
82    #[cfg(Py_3_11)]
83    pub notes: *mut PyObject,
84    pub traceback: *mut PyObject,
85    pub context: *mut PyObject,
86    pub cause: *mut PyObject,
87    pub suppress_context: char,
88
89    pub encoding: *mut PyObject,
90    pub object: *mut PyObject,
91    pub start: Py_ssize_t,
92    pub end: Py_ssize_t,
93    pub reason: *mut PyObject,
94}
95
96#[cfg(not(any(PyPy, GraalPy)))]
97#[repr(C)]
98#[derive(Debug)]
99pub struct PySystemExitObject {
100    pub ob_base: PyObject,
101    pub dict: *mut PyObject,
102    pub args: *mut PyObject,
103    #[cfg(Py_3_11)]
104    pub notes: *mut PyObject,
105    pub traceback: *mut PyObject,
106    pub context: *mut PyObject,
107    pub cause: *mut PyObject,
108    pub suppress_context: char,
109
110    pub code: *mut PyObject,
111}
112
113#[cfg(not(any(PyPy, GraalPy)))]
114#[repr(C)]
115#[derive(Debug)]
116pub struct PyOSErrorObject {
117    pub ob_base: PyObject,
118    pub dict: *mut PyObject,
119    pub args: *mut PyObject,
120    #[cfg(Py_3_11)]
121    pub notes: *mut PyObject,
122    pub traceback: *mut PyObject,
123    pub context: *mut PyObject,
124    pub cause: *mut PyObject,
125    pub suppress_context: char,
126
127    pub myerrno: *mut PyObject,
128    pub strerror: *mut PyObject,
129    pub filename: *mut PyObject,
130    pub filename2: *mut PyObject,
131    #[cfg(windows)]
132    pub winerror: *mut PyObject,
133    pub written: Py_ssize_t,
134}
135
136#[repr(C)]
137#[derive(Debug)]
138pub struct PyStopIterationObject {
139    pub ob_base: PyObject,
140    #[cfg(not(PyPy))]
141    pub dict: *mut PyObject,
142    #[cfg(not(PyPy))]
143    pub args: *mut PyObject,
144    #[cfg(all(Py_3_11, not(PyPy)))]
145    pub notes: *mut PyObject,
146    #[cfg(not(PyPy))]
147    pub traceback: *mut PyObject,
148    #[cfg(not(PyPy))]
149    pub context: *mut PyObject,
150    #[cfg(not(PyPy))]
151    pub cause: *mut PyObject,
152    #[cfg(not(PyPy))]
153    pub suppress_context: char,
154
155    pub value: *mut PyObject,
156}
157
158// skipped _PyErr_ChainExceptions
159
160// skipped PyNameErrorObject
161// skipped PyAttributeErrorObject
162
163// skipped PyEnvironmentErrorObject
164// skipped PyWindowsErrorObject
165
166// skipped _PyErr_SetKeyError
167// skipped _PyErr_GetTopmostException
168// skipped _PyErr_GetExcInfo
169
170// skipped PyErr_SetFromErrnoWithUnicodeFilename
171
172// skipped _PyErr_FormatFromCause
173
174// skipped PyErr_SetFromWindowsErrWithUnicodeFilename
175// skipped PyErr_SetExcFromWindowsErrWithUnicodeFilename
176
177// skipped _PyErr_TrySetFromCause
178
179// skipped PySignal_SetWakeupFd
180// skipped _PyErr_CheckSignals
181
182// skipped PyErr_SyntaxLocationObject
183// skipped PyErr_RangedSyntaxLocationObject
184// skipped PyErr_ProgramTextObject
185
186// skipped _PyErr_ProgramDecodedTextObject
187// skipped _PyUnicodeTranslateError_Create
188// skipped _PyErr_WriteUnraisableMsg
189// skipped _Py_FatalErrorFunc
190// skipped _Py_FatalErrorFormat
191// skipped Py_FatalError
⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here