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 #[cfg(Py_3_14)]
50 pub metadata: *mut PyObject,
51}
52
53#[cfg(not(any(PyPy, GraalPy)))]
54#[repr(C)]
55#[derive(Debug)]
56pub struct PyImportErrorObject {
57 pub ob_base: PyObject,
58 pub dict: *mut PyObject,
59 pub args: *mut PyObject,
60 #[cfg(Py_3_11)]
61 pub notes: *mut PyObject,
62 pub traceback: *mut PyObject,
63 pub context: *mut PyObject,
64 pub cause: *mut PyObject,
65 pub suppress_context: char,
66
67 pub msg: *mut PyObject,
68 pub name: *mut PyObject,
69 pub path: *mut PyObject,
70 #[cfg(Py_3_12)]
71 pub name_from: *mut PyObject,
72}
73
74#[cfg(not(any(PyPy, GraalPy)))]
75#[repr(C)]
76#[derive(Debug)]
77pub struct PyUnicodeErrorObject {
78 pub ob_base: PyObject,
79 pub dict: *mut PyObject,
80 pub args: *mut PyObject,
81 #[cfg(Py_3_11)]
82 pub notes: *mut PyObject,
83 pub traceback: *mut PyObject,
84 pub context: *mut PyObject,
85 pub cause: *mut PyObject,
86 pub suppress_context: char,
87
88 pub encoding: *mut PyObject,
89 pub object: *mut PyObject,
90 pub start: Py_ssize_t,
91 pub end: Py_ssize_t,
92 pub reason: *mut PyObject,
93}
94
95#[cfg(not(any(PyPy, GraalPy)))]
96#[repr(C)]
97#[derive(Debug)]
98pub struct PySystemExitObject {
99 pub ob_base: PyObject,
100 pub dict: *mut PyObject,
101 pub args: *mut PyObject,
102 #[cfg(Py_3_11)]
103 pub notes: *mut PyObject,
104 pub traceback: *mut PyObject,
105 pub context: *mut PyObject,
106 pub cause: *mut PyObject,
107 pub suppress_context: char,
108
109 pub code: *mut PyObject,
110}
111
112#[cfg(not(any(PyPy, GraalPy)))]
113#[repr(C)]
114#[derive(Debug)]
115pub struct PyOSErrorObject {
116 pub ob_base: PyObject,
117 pub dict: *mut PyObject,
118 pub args: *mut PyObject,
119 #[cfg(Py_3_11)]
120 pub notes: *mut PyObject,
121 pub traceback: *mut PyObject,
122 pub context: *mut PyObject,
123 pub cause: *mut PyObject,
124 pub suppress_context: char,
125
126 pub myerrno: *mut PyObject,
127 pub strerror: *mut PyObject,
128 pub filename: *mut PyObject,
129 pub filename2: *mut PyObject,
130 #[cfg(windows)]
131 pub winerror: *mut PyObject,
132 pub written: Py_ssize_t,
133}
134
135#[repr(C)]
136#[derive(Debug)]
137pub struct PyStopIterationObject {
138 pub ob_base: PyObject,
139 #[cfg(not(PyPy))]
140 pub dict: *mut PyObject,
141 #[cfg(not(PyPy))]
142 pub args: *mut PyObject,
143 #[cfg(all(Py_3_11, not(PyPy)))]
144 pub notes: *mut PyObject,
145 #[cfg(not(PyPy))]
146 pub traceback: *mut PyObject,
147 #[cfg(not(PyPy))]
148 pub context: *mut PyObject,
149 #[cfg(not(PyPy))]
150 pub cause: *mut PyObject,
151 #[cfg(not(PyPy))]
152 pub suppress_context: char,
153
154 pub value: *mut PyObject,
155}
156
157