@@ -43,12 +43,79 @@ typedef Py_hash_t HPy_hash_t;
43
43
#define _h2py (x ) (x._o)
44
44
#define _py2h (o ) ((HPy){o})
45
45
46
+ // this should maybe autogenerated from public_api.h
46
47
typedef struct _HPyContext_s {
48
+ /* Constants */
47
49
HPy h_None ;
48
50
HPy h_True ;
49
51
HPy h_False ;
50
- HPy h_ValueError ;
52
+ /* Exceptions */
53
+ HPy h_BaseException ;
54
+ HPy h_Exception ;
55
+ HPy h_StopAsyncIteration ;
56
+ HPy h_StopIteration ;
57
+ HPy h_GeneratorExit ;
58
+ HPy h_ArithmeticError ;
59
+ HPy h_LookupError ;
60
+ HPy h_AssertionError ;
61
+ HPy h_AttributeError ;
62
+ HPy h_BufferError ;
63
+ HPy h_EOFError ;
64
+ HPy h_FloatingPointError ;
65
+ HPy h_OSError ;
66
+ HPy h_ImportError ;
67
+ HPy h_ModuleNotFoundError ;
68
+ HPy h_IndexError ;
69
+ HPy h_KeyError ;
70
+ HPy h_KeyboardInterrupt ;
71
+ HPy h_MemoryError ;
72
+ HPy h_NameError ;
73
+ HPy h_OverflowError ;
74
+ HPy h_RuntimeError ;
75
+ HPy h_RecursionError ;
76
+ HPy h_NotImplementedError ;
77
+ HPy h_SyntaxError ;
78
+ HPy h_IndentationError ;
79
+ HPy h_TabError ;
80
+ HPy h_ReferenceError ;
81
+ HPy h_SystemError ;
82
+ HPy h_SystemExit ;
51
83
HPy h_TypeError ;
84
+ HPy h_UnboundLocalError ;
85
+ HPy h_UnicodeError ;
86
+ HPy h_UnicodeEncodeError ;
87
+ HPy h_UnicodeDecodeError ;
88
+ HPy h_UnicodeTranslateError ;
89
+ HPy h_ValueError ;
90
+ HPy h_ZeroDivisionError ;
91
+ HPy h_BlockingIOError ;
92
+ HPy h_BrokenPipeError ;
93
+ HPy h_ChildProcessError ;
94
+ HPy h_ConnectionError ;
95
+ HPy h_ConnectionAbortedError ;
96
+ HPy h_ConnectionRefusedError ;
97
+ HPy h_ConnectionResetError ;
98
+ HPy h_FileExistsError ;
99
+ HPy h_FileNotFoundError ;
100
+ HPy h_InterruptedError ;
101
+ HPy h_IsADirectoryError ;
102
+ HPy h_NotADirectoryError ;
103
+ HPy h_PermissionError ;
104
+ HPy h_ProcessLookupError ;
105
+ HPy h_TimeoutError ;
106
+ /* Warnings */
107
+ HPy h_Warning ;
108
+ HPy h_UserWarning ;
109
+ HPy h_DeprecationWarning ;
110
+ HPy h_PendingDeprecationWarning ;
111
+ HPy h_SyntaxWarning ;
112
+ HPy h_RuntimeWarning ;
113
+ HPy h_FutureWarning ;
114
+ HPy h_ImportWarning ;
115
+ HPy h_UnicodeWarning ;
116
+ HPy h_BytesWarning ;
117
+ HPy h_ResourceWarning ;
118
+ /* Types */
52
119
HPy h_BaseObjectType ;
53
120
HPy h_TypeType ;
54
121
HPy h_LongType ;
@@ -76,11 +143,77 @@ _HPyGetContext(void) {
76
143
if (HPy_IsNull (ctx -> h_None )) {
77
144
// XXX: we need to find a better way to check whether the ctx is
78
145
// initialized or not
146
+ /* Constants */
79
147
ctx -> h_None = _py2h (Py_None );
80
148
ctx -> h_True = _py2h (Py_True );
81
149
ctx -> h_False = _py2h (Py_False );
82
- ctx -> h_ValueError = _py2h (PyExc_ValueError );
150
+ /* Exceptions */
151
+ ctx -> h_BaseException = _py2h (PyExc_BaseException );
152
+ ctx -> h_Exception = _py2h (PyExc_Exception );
153
+ ctx -> h_StopAsyncIteration = _py2h (PyExc_StopAsyncIteration );
154
+ ctx -> h_StopIteration = _py2h (PyExc_StopIteration );
155
+ ctx -> h_GeneratorExit = _py2h (PyExc_GeneratorExit );
156
+ ctx -> h_ArithmeticError = _py2h (PyExc_ArithmeticError );
157
+ ctx -> h_LookupError = _py2h (PyExc_LookupError );
158
+ ctx -> h_AssertionError = _py2h (PyExc_AssertionError );
159
+ ctx -> h_AttributeError = _py2h (PyExc_AttributeError );
160
+ ctx -> h_BufferError = _py2h (PyExc_BufferError );
161
+ ctx -> h_EOFError = _py2h (PyExc_EOFError );
162
+ ctx -> h_FloatingPointError = _py2h (PyExc_FloatingPointError );
163
+ ctx -> h_OSError = _py2h (PyExc_OSError );
164
+ ctx -> h_ImportError = _py2h (PyExc_ImportError );
165
+ ctx -> h_ModuleNotFoundError = _py2h (PyExc_ModuleNotFoundError );
166
+ ctx -> h_IndexError = _py2h (PyExc_IndexError );
167
+ ctx -> h_KeyError = _py2h (PyExc_KeyError );
168
+ ctx -> h_KeyboardInterrupt = _py2h (PyExc_KeyboardInterrupt );
169
+ ctx -> h_MemoryError = _py2h (PyExc_MemoryError );
170
+ ctx -> h_NameError = _py2h (PyExc_NameError );
171
+ ctx -> h_OverflowError = _py2h (PyExc_OverflowError );
172
+ ctx -> h_RuntimeError = _py2h (PyExc_RuntimeError );
173
+ ctx -> h_RecursionError = _py2h (PyExc_RecursionError );
174
+ ctx -> h_NotImplementedError = _py2h (PyExc_NotImplementedError );
175
+ ctx -> h_SyntaxError = _py2h (PyExc_SyntaxError );
176
+ ctx -> h_IndentationError = _py2h (PyExc_IndentationError );
177
+ ctx -> h_TabError = _py2h (PyExc_TabError );
178
+ ctx -> h_ReferenceError = _py2h (PyExc_ReferenceError );
179
+ ctx -> h_SystemError = _py2h (PyExc_SystemError );
180
+ ctx -> h_SystemExit = _py2h (PyExc_SystemExit );
83
181
ctx -> h_TypeError = _py2h (PyExc_TypeError );
182
+ ctx -> h_UnboundLocalError = _py2h (PyExc_UnboundLocalError );
183
+ ctx -> h_UnicodeError = _py2h (PyExc_UnicodeError );
184
+ ctx -> h_UnicodeEncodeError = _py2h (PyExc_UnicodeEncodeError );
185
+ ctx -> h_UnicodeDecodeError = _py2h (PyExc_UnicodeDecodeError );
186
+ ctx -> h_UnicodeTranslateError = _py2h (PyExc_UnicodeTranslateError );
187
+ ctx -> h_ValueError = _py2h (PyExc_ValueError );
188
+ ctx -> h_ZeroDivisionError = _py2h (PyExc_ZeroDivisionError );
189
+ ctx -> h_BlockingIOError = _py2h (PyExc_BlockingIOError );
190
+ ctx -> h_BrokenPipeError = _py2h (PyExc_BrokenPipeError );
191
+ ctx -> h_ChildProcessError = _py2h (PyExc_ChildProcessError );
192
+ ctx -> h_ConnectionError = _py2h (PyExc_ConnectionError );
193
+ ctx -> h_ConnectionAbortedError = _py2h (PyExc_ConnectionAbortedError );
194
+ ctx -> h_ConnectionRefusedError = _py2h (PyExc_ConnectionRefusedError );
195
+ ctx -> h_ConnectionResetError = _py2h (PyExc_ConnectionResetError );
196
+ ctx -> h_FileExistsError = _py2h (PyExc_FileExistsError );
197
+ ctx -> h_FileNotFoundError = _py2h (PyExc_FileNotFoundError );
198
+ ctx -> h_InterruptedError = _py2h (PyExc_InterruptedError );
199
+ ctx -> h_IsADirectoryError = _py2h (PyExc_IsADirectoryError );
200
+ ctx -> h_NotADirectoryError = _py2h (PyExc_NotADirectoryError );
201
+ ctx -> h_PermissionError = _py2h (PyExc_PermissionError );
202
+ ctx -> h_ProcessLookupError = _py2h (PyExc_ProcessLookupError );
203
+ ctx -> h_TimeoutError = _py2h (PyExc_TimeoutError );
204
+ /* Warnings */
205
+ ctx -> h_Warning = _py2h (PyExc_Warning );
206
+ ctx -> h_UserWarning = _py2h (PyExc_UserWarning );
207
+ ctx -> h_DeprecationWarning = _py2h (PyExc_DeprecationWarning );
208
+ ctx -> h_PendingDeprecationWarning = _py2h (PyExc_PendingDeprecationWarning );
209
+ ctx -> h_SyntaxWarning = _py2h (PyExc_SyntaxWarning );
210
+ ctx -> h_RuntimeWarning = _py2h (PyExc_RuntimeWarning );
211
+ ctx -> h_FutureWarning = _py2h (PyExc_FutureWarning );
212
+ ctx -> h_ImportWarning = _py2h (PyExc_ImportWarning );
213
+ ctx -> h_UnicodeWarning = _py2h (PyExc_UnicodeWarning );
214
+ ctx -> h_BytesWarning = _py2h (PyExc_BytesWarning );
215
+ ctx -> h_ResourceWarning = _py2h (PyExc_ResourceWarning );
216
+ /* Types */
84
217
ctx -> h_BaseObjectType = _py2h ((PyObject * )& PyBaseObject_Type );
85
218
ctx -> h_TypeType = _py2h ((PyObject * )& PyType_Type );
86
219
ctx -> h_LongType = _py2h ((PyObject * )& PyLong_Type );
@@ -251,15 +384,15 @@ HPyTracker_Add(HPyContext ctx, HPyTracker ht, HPy h)
251
384
}
252
385
253
386
HPyAPI_FUNC (void )
254
- HPyTracker_RemoveAll (HPyContext ctx , HPyTracker ht )
387
+ HPyTracker_ForgetAll (HPyContext ctx , HPyTracker ht )
255
388
{
256
- ctx_Tracker_RemoveAll (ctx , ht );
389
+ ctx_Tracker_ForgetAll (ctx , ht );
257
390
}
258
391
259
392
HPyAPI_FUNC (void )
260
- HPyTracker_Free (HPyContext ctx , HPyTracker ht )
393
+ HPyTracker_Close (HPyContext ctx , HPyTracker ht )
261
394
{
262
- ctx_Tracker_Free (ctx , ht );
395
+ ctx_Tracker_Close (ctx , ht );
263
396
}
264
397
265
398
#endif /* !HPy_CPYTHON_H */
0 commit comments