@@ -43,12 +43,79 @@ typedef Py_hash_t HPy_hash_t;
4343#define _h2py (x ) (x._o)
4444#define _py2h (o ) ((HPy){o})
4545
46+ // this should maybe autogenerated from public_api.h
4647typedef struct _HPyContext_s {
48+ /* Constants */
4749 HPy h_None ;
4850 HPy h_True ;
4951 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 ;
5183 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 */
52119 HPy h_BaseObjectType ;
53120 HPy h_TypeType ;
54121 HPy h_LongType ;
@@ -76,11 +143,77 @@ _HPyGetContext(void) {
76143 if (HPy_IsNull (ctx -> h_None )) {
77144 // XXX: we need to find a better way to check whether the ctx is
78145 // initialized or not
146+ /* Constants */
79147 ctx -> h_None = _py2h (Py_None );
80148 ctx -> h_True = _py2h (Py_True );
81149 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 );
83181 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 */
84217 ctx -> h_BaseObjectType = _py2h ((PyObject * )& PyBaseObject_Type );
85218 ctx -> h_TypeType = _py2h ((PyObject * )& PyType_Type );
86219 ctx -> h_LongType = _py2h ((PyObject * )& PyLong_Type );
@@ -251,15 +384,15 @@ HPyTracker_Add(HPyContext ctx, HPyTracker ht, HPy h)
251384}
252385
253386HPyAPI_FUNC (void )
254- HPyTracker_RemoveAll (HPyContext ctx , HPyTracker ht )
387+ HPyTracker_ForgetAll (HPyContext ctx , HPyTracker ht )
255388{
256- ctx_Tracker_RemoveAll (ctx , ht );
389+ ctx_Tracker_ForgetAll (ctx , ht );
257390}
258391
259392HPyAPI_FUNC (void )
260- HPyTracker_Free (HPyContext ctx , HPyTracker ht )
393+ HPyTracker_Close (HPyContext ctx , HPyTracker ht )
261394{
262- ctx_Tracker_Free (ctx , ht );
395+ ctx_Tracker_Close (ctx , ht );
263396}
264397
265398#endif /* !HPy_CPYTHON_H */
0 commit comments