@@ -33,11 +33,176 @@ HPyAPI_STORAGE HPy _HPy_IMPL_NAME(Float_FromDouble)(HPyContext ctx, double v)
3333 return _py2h (PyFloat_FromDouble (v ));
3434}
3535
36- HPyAPI_STORAGE HPy _HPy_IMPL_NAME ( Number_Add )(HPyContext ctx , HPy h1 , HPy h2 )
36+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX ( Add )(HPyContext ctx , HPy h1 , HPy h2 )
3737{
3838 return _py2h (PyNumber_Add (_h2py (h1 ), _h2py (h2 )));
3939}
4040
41+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Subtract )(HPyContext ctx , HPy h1 , HPy h2 )
42+ {
43+ return _py2h (PyNumber_Subtract (_h2py (h1 ), _h2py (h2 )));
44+ }
45+
46+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Multiply )(HPyContext ctx , HPy h1 , HPy h2 )
47+ {
48+ return _py2h (PyNumber_Multiply (_h2py (h1 ), _h2py (h2 )));
49+ }
50+
51+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (MatrixMultiply )(HPyContext ctx , HPy h1 , HPy h2 )
52+ {
53+ return _py2h (PyNumber_MatrixMultiply (_h2py (h1 ), _h2py (h2 )));
54+ }
55+
56+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (FloorDivide )(HPyContext ctx , HPy h1 , HPy h2 )
57+ {
58+ return _py2h (PyNumber_FloorDivide (_h2py (h1 ), _h2py (h2 )));
59+ }
60+
61+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (TrueDivide )(HPyContext ctx , HPy h1 , HPy h2 )
62+ {
63+ return _py2h (PyNumber_TrueDivide (_h2py (h1 ), _h2py (h2 )));
64+ }
65+
66+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Remainder )(HPyContext ctx , HPy h1 , HPy h2 )
67+ {
68+ return _py2h (PyNumber_Remainder (_h2py (h1 ), _h2py (h2 )));
69+ }
70+
71+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Divmod )(HPyContext ctx , HPy h1 , HPy h2 )
72+ {
73+ return _py2h (PyNumber_Divmod (_h2py (h1 ), _h2py (h2 )));
74+ }
75+
76+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Power )(HPyContext ctx , HPy h1 , HPy h2 , HPy h3 )
77+ {
78+ return _py2h (PyNumber_Power (_h2py (h1 ), _h2py (h2 ), _h2py (h3 )));
79+ }
80+
81+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Negative )(HPyContext ctx , HPy h1 )
82+ {
83+ return _py2h (PyNumber_Negative (_h2py (h1 )));
84+ }
85+
86+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Positive )(HPyContext ctx , HPy h1 )
87+ {
88+ return _py2h (PyNumber_Positive (_h2py (h1 )));
89+ }
90+
91+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Absolute )(HPyContext ctx , HPy h1 )
92+ {
93+ return _py2h (PyNumber_Absolute (_h2py (h1 )));
94+ }
95+
96+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Invert )(HPyContext ctx , HPy h1 )
97+ {
98+ return _py2h (PyNumber_Invert (_h2py (h1 )));
99+ }
100+
101+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Lshift )(HPyContext ctx , HPy h1 , HPy h2 )
102+ {
103+ return _py2h (PyNumber_Lshift (_h2py (h1 ), _h2py (h2 )));
104+ }
105+
106+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Rshift )(HPyContext ctx , HPy h1 , HPy h2 )
107+ {
108+ return _py2h (PyNumber_Rshift (_h2py (h1 ), _h2py (h2 )));
109+ }
110+
111+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (And )(HPyContext ctx , HPy h1 , HPy h2 )
112+ {
113+ return _py2h (PyNumber_And (_h2py (h1 ), _h2py (h2 )));
114+ }
115+
116+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Xor )(HPyContext ctx , HPy h1 , HPy h2 )
117+ {
118+ return _py2h (PyNumber_Xor (_h2py (h1 ), _h2py (h2 )));
119+ }
120+
121+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Or )(HPyContext ctx , HPy h1 , HPy h2 )
122+ {
123+ return _py2h (PyNumber_Or (_h2py (h1 ), _h2py (h2 )));
124+ }
125+
126+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Index )(HPyContext ctx , HPy h1 )
127+ {
128+ return _py2h (PyNumber_Index (_h2py (h1 )));
129+ }
130+
131+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Long )(HPyContext ctx , HPy h1 )
132+ {
133+ return _py2h (PyNumber_Long (_h2py (h1 )));
134+ }
135+
136+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (Float )(HPyContext ctx , HPy h1 )
137+ {
138+ return _py2h (PyNumber_Float (_h2py (h1 )));
139+ }
140+
141+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceAdd )(HPyContext ctx , HPy h1 , HPy h2 )
142+ {
143+ return _py2h (PyNumber_InPlaceAdd (_h2py (h1 ), _h2py (h2 )));
144+ }
145+
146+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceSubtract )(HPyContext ctx , HPy h1 , HPy h2 )
147+ {
148+ return _py2h (PyNumber_InPlaceSubtract (_h2py (h1 ), _h2py (h2 )));
149+ }
150+
151+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceMultiply )(HPyContext ctx , HPy h1 , HPy h2 )
152+ {
153+ return _py2h (PyNumber_InPlaceMultiply (_h2py (h1 ), _h2py (h2 )));
154+ }
155+
156+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceMatrixMultiply )(HPyContext ctx , HPy h1 , HPy h2 )
157+ {
158+ return _py2h (PyNumber_InPlaceMatrixMultiply (_h2py (h1 ), _h2py (h2 )));
159+ }
160+
161+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceFloorDivide )(HPyContext ctx , HPy h1 , HPy h2 )
162+ {
163+ return _py2h (PyNumber_InPlaceFloorDivide (_h2py (h1 ), _h2py (h2 )));
164+ }
165+
166+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceTrueDivide )(HPyContext ctx , HPy h1 , HPy h2 )
167+ {
168+ return _py2h (PyNumber_InPlaceTrueDivide (_h2py (h1 ), _h2py (h2 )));
169+ }
170+
171+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceRemainder )(HPyContext ctx , HPy h1 , HPy h2 )
172+ {
173+ return _py2h (PyNumber_InPlaceRemainder (_h2py (h1 ), _h2py (h2 )));
174+ }
175+
176+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlacePower )(HPyContext ctx , HPy h1 , HPy h2 , HPy h3 )
177+ {
178+ return _py2h (PyNumber_InPlacePower (_h2py (h1 ), _h2py (h2 ), _h2py (h3 )));
179+ }
180+
181+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceLshift )(HPyContext ctx , HPy h1 , HPy h2 )
182+ {
183+ return _py2h (PyNumber_InPlaceLshift (_h2py (h1 ), _h2py (h2 )));
184+ }
185+
186+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceRshift )(HPyContext ctx , HPy h1 , HPy h2 )
187+ {
188+ return _py2h (PyNumber_InPlaceRshift (_h2py (h1 ), _h2py (h2 )));
189+ }
190+
191+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceAnd )(HPyContext ctx , HPy h1 , HPy h2 )
192+ {
193+ return _py2h (PyNumber_InPlaceAnd (_h2py (h1 ), _h2py (h2 )));
194+ }
195+
196+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceXor )(HPyContext ctx , HPy h1 , HPy h2 )
197+ {
198+ return _py2h (PyNumber_InPlaceXor (_h2py (h1 ), _h2py (h2 )));
199+ }
200+
201+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (InPlaceOr )(HPyContext ctx , HPy h1 , HPy h2 )
202+ {
203+ return _py2h (PyNumber_InPlaceOr (_h2py (h1 ), _h2py (h2 )));
204+ }
205+
41206HPyAPI_STORAGE void _HPy_IMPL_NAME (Err_SetString )(HPyContext ctx , HPy h_type , const char * message )
42207{
43208 return PyErr_SetString (_h2py (h_type ), message );
@@ -48,6 +213,46 @@ HPyAPI_STORAGE int _HPy_IMPL_NAME(Object_IsTrue)(HPyContext ctx, HPy h)
48213 return PyObject_IsTrue (_h2py (h ));
49214}
50215
216+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (GetAttr )(HPyContext ctx , HPy obj , HPy name )
217+ {
218+ return _py2h (PyObject_GetAttr (_h2py (obj ), _h2py (name )));
219+ }
220+
221+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (GetAttr_s )(HPyContext ctx , HPy obj , const char * name )
222+ {
223+ return _py2h (PyObject_GetAttrString (_h2py (obj ), name ));
224+ }
225+
226+ HPyAPI_STORAGE int _HPy_IMPL_NAME_NOPREFIX (HasAttr )(HPyContext ctx , HPy obj , HPy name )
227+ {
228+ return PyObject_HasAttr (_h2py (obj ), _h2py (name ));
229+ }
230+
231+ HPyAPI_STORAGE int _HPy_IMPL_NAME_NOPREFIX (HasAttr_s )(HPyContext ctx , HPy obj , const char * name )
232+ {
233+ return PyObject_HasAttrString (_h2py (obj ), name );
234+ }
235+
236+ HPyAPI_STORAGE int _HPy_IMPL_NAME_NOPREFIX (SetAttr )(HPyContext ctx , HPy obj , HPy name , HPy value )
237+ {
238+ return PyObject_SetAttr (_h2py (obj ), _h2py (name ), _h2py (value ));
239+ }
240+
241+ HPyAPI_STORAGE int _HPy_IMPL_NAME_NOPREFIX (SetAttr_s )(HPyContext ctx , HPy obj , const char * name , HPy value )
242+ {
243+ return PyObject_SetAttrString (_h2py (obj ), name , _h2py (value ));
244+ }
245+
246+ HPyAPI_STORAGE HPy _HPy_IMPL_NAME_NOPREFIX (GetItem )(HPyContext ctx , HPy obj , HPy key )
247+ {
248+ return _py2h (PyObject_GetItem (_h2py (obj ), _h2py (key )));
249+ }
250+
251+ HPyAPI_STORAGE int _HPy_IMPL_NAME_NOPREFIX (SetItem )(HPyContext ctx , HPy obj , HPy key , HPy value )
252+ {
253+ return PyObject_SetItem (_h2py (obj ), _h2py (key ), _h2py (value ));
254+ }
255+
51256HPyAPI_STORAGE int _HPy_IMPL_NAME (Bytes_Check )(HPyContext ctx , HPy h )
52257{
53258 return PyBytes_Check (_h2py (h ));
0 commit comments