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 }
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