Commit | Line | Data |
---|---|---|
34e49164 C |
1 | (* |
2 | * (C) arty 2002 | |
3 | * This software is covered under the GNU lesser general public license | |
4 | *) | |
5 | ||
6 | open Int64 ;; | |
7 | ||
8 | type funcptr | |
9 | type pyobject | |
10 | type funcent = (funcptr * int * int) | |
11 | ||
12 | type pymodule_func = { pyml_name : string ; | |
13 | pyml_func : (pyobject -> pyobject) ; | |
14 | pyml_flags : int ; | |
15 | pyml_doc : string } | |
16 | ||
17 | type pyobject_type = | |
18 | TupleType | |
19 | | StringType | |
20 | | IntType | |
21 | | FloatType | |
22 | | ListType | |
23 | | NoneType | |
24 | | CallableType | |
25 | | ModuleType | |
26 | | ClassType | |
27 | | NullType | |
28 | | TypeType | |
29 | | OtherType | |
30 | ||
31 | (* Function list *) | |
32 | ||
33 | external getfuncarray : unit -> funcent array = "pygetfuncarray" | |
34 | let py_funcs = getfuncarray () | |
35 | external pytype : pyobject -> pyobject_type = "pytype" | |
36 | ||
37 | external pyfuncall1 : (funcptr * int * int) -> unit -> unit = "pygencall" | |
38 | external pyfuncall2 : (funcptr * int * int) -> int -> unit = "pygencall" | |
39 | external pyfuncall3 : (funcptr * int * int) -> string -> unit = "pygencall" | |
40 | external pyfuncall4 : (funcptr * int * int) -> unit -> int = "pygencall" | |
41 | external pyfuncall5 : (funcptr * int * int) -> string -> int = "pygencall" | |
42 | external pyfuncall6 : (funcptr * int * int) -> (int * string) -> int = "pygencall" | |
43 | external pyfuncall7 : (funcptr * int * int) -> (int * string * int) -> int = | |
44 | "pygencall" | |
45 | external pyfuncall8 : (funcptr * int * int) -> unit -> string = "pygencall" | |
46 | external pyfuncall9 : (funcptr * int * int) -> (string * int * pyobject * pyobject) -> pyobject = "pygencall" | |
47 | external pyfuncall10 : (funcptr * int * int) -> | |
48 | (int * string * int * pyobject * pyobject) -> pyobject = "pygencall" | |
49 | external pyfuncall11 : (funcptr * int * int) -> | |
50 | (int * string * int * pyobject * pyobject * int) -> pyobject = "pygencall" | |
51 | external pyfuncall12 : (funcptr * int * int) -> | |
52 | (string * string * int) -> pyobject = "pygencall" | |
53 | external pyfuncall13 : (funcptr * int * int) -> | |
54 | (pyobject * int * int) -> int = "pygencall" | |
55 | external pyfuncall14 : (funcptr * int * int) -> pyobject -> pyobject = "pygencall" | |
56 | external pyfuncall15 : (funcptr * int * int) -> (pyobject * pyobject * int) -> pyobject = "pygencall" | |
57 | external pyfuncall16 : (funcptr * int * int) -> (pyobject * string) -> pyobject = "pygencall" | |
58 | external pyfuncall17 : (funcptr * int * int) -> (pyobject * pyobject) -> pyobject = "pygencall" | |
59 | external pyfuncall18 : (funcptr * int * int) -> pyobject -> int = "pygencall" | |
60 | external pyfuncall19 : (funcptr * int * int) -> (pyobject * pyobject) -> int = "pygencall" | |
61 | external pyfuncall20 : (funcptr * int * int) -> (pyobject * pyobject * int) -> int = "pygencall" | |
62 | external pyfuncall21 : (funcptr * int * int) -> (pyobject * string * pyobject) -> int = "pygencall" | |
63 | external pyfuncall22 : (funcptr * int * int) -> (pyobject * string) -> int = "pygencall" | |
64 | external pyfuncall23 : (funcptr * int * int) -> (pyobject * pyobject) -> (pyobject * pyobject) option = "pygencall" | |
65 | external pyfuncall24 : (funcptr * int * int) -> (pyobject * pyobject * pyobject) -> int = "pygencall" | |
66 | external pyfuncall25 : (funcptr * int * int) -> pyobject -> int64 = "pygencall" | |
67 | external pyfuncall26 : (funcptr * int * int) -> pyobject -> string = "pygencall" | |
68 | external pyfuncall27 : (funcptr * int * int) -> (pyobject * pyobject) -> pyobject = "pygencall" | |
69 | external pyfuncall28 : (funcptr * int * int) -> string -> pyobject = "pygencall" | |
70 | external pyfuncall29 : (funcptr * int * int) -> unit -> pyobject = "pygencall" | |
71 | external pyfuncall30 : (funcptr * int * int) -> pyobject -> unit = "pygencall" | |
72 | external pyfuncall31 : (funcptr * int * int) -> (pyobject * int) -> | |
73 | (pyobject * pyobject * int) option = "pygencall" | |
74 | external pyfuncall34 : (funcptr * int * int) -> int64 -> pyobject = "pygencall" | |
75 | external pyfuncall35 : (funcptr * int * int) -> unit -> int64 = "pygencall" | |
76 | external pyfuncall36 : (funcptr * int * int) -> float -> pyobject = "pygencall" | |
77 | external pyfuncall37 : (funcptr * int * int) -> pyobject -> float = "pygencall" | |
78 | external pyfuncall39 : (funcptr * int * int) -> int -> pyobject = "pygencall" | |
79 | external pyfuncall40 : (funcptr * int * int) -> (pyobject * int) -> | |
80 | pyobject = "pygencall" | |
81 | external pyfuncall41 : (funcptr * int * int) -> (pyobject * int * pyobject) -> | |
82 | int = "pygencall" | |
83 | external pyfuncall42 : (funcptr * int * int) -> (pyobject * pyobject * pyobject) -> | |
84 | pyobject = "pygencall" | |
85 | external pyfuncall43 : (funcptr * int * int) -> (pyobject * int) -> | |
86 | (int * int * int) option = "pygencall" | |
87 | external pyfuncall44 : (funcptr * int * int) -> (int * int * int * int) -> | |
88 | pyobject = "pygencall" | |
89 | external pyfuncall45 : (funcptr * int * int) -> (pyobject * pyobject) -> unit = | |
90 | "pygencall" | |
91 | external pyfuncall46 : (funcptr * int * int) -> (pyobject * string) -> unit = | |
92 | "pygencall" | |
93 | external pyfuncall47 : (funcptr * int * int) -> (pyobject * pyobject * pyobject) -> | |
94 | (pyobject * pyobject * pyobject) = "pygencall" | |
95 | external pyfuncall48 : (funcptr * int * int) -> (pyobject * pyobject * pyobject) -> | |
96 | unit = "pygencall" | |
97 | external pyfuncall49 : (funcptr * int * int) -> (pyobject * string) -> pyobject = | |
98 | "pygencall" | |
99 | external pyfuncall50 : (funcptr * int * int) -> (string * pyobject * string) -> | |
100 | pyobject = "pygencall" | |
101 | external pyfuncall51 : (funcptr * int * int) -> | |
102 | (string * pyobject * pyobject * pyobject) -> pyobject = "pygencall" | |
103 | external pyfuncall52 : (funcptr * int * int) -> pyobject -> string = "pygencall" | |
104 | external pyfuncall53 : (funcptr * int * int) -> (pyobject * int * int * pyobject) -> int = "pygencall" | |
105 | external pyfuncall54 : (funcptr * int * int) -> (pyobject * int * int) -> int = | |
106 | "pygencall" | |
107 | ||
108 | let fmt1call func = pyfuncall1 func | |
109 | let fmt2call func = pyfuncall2 func | |
110 | let fmt3call func = pyfuncall3 func | |
111 | let fmt4call func = pyfuncall4 func | |
112 | let fmt5call func = pyfuncall5 func | |
113 | let fmt6call func = pyfuncall6 func | |
114 | let fmt7call func = pyfuncall7 func | |
115 | let fmt8call func = pyfuncall8 func | |
116 | let fmt9call func = pyfuncall9 func | |
117 | let fmt10call func = pyfuncall10 func | |
118 | let fmt11call func = pyfuncall11 func | |
119 | let fmt12call func = pyfuncall12 func | |
120 | let fmt13call func = pyfuncall13 func | |
121 | let fmt14call func = pyfuncall14 func | |
122 | let fmt15call func = pyfuncall15 func | |
123 | let fmt16call func = pyfuncall16 func | |
124 | let fmt17call func = pyfuncall17 func | |
125 | let fmt18call func = pyfuncall18 func | |
126 | let fmt19call func = pyfuncall19 func | |
127 | let fmt20call func = pyfuncall20 func | |
128 | let fmt21call func = pyfuncall21 func | |
129 | let fmt22call func = pyfuncall22 func | |
130 | let fmt23call func = pyfuncall23 func | |
131 | let fmt24call func = pyfuncall24 func | |
132 | let fmt25call func = pyfuncall25 func | |
133 | let fmt26call func = pyfuncall26 func | |
134 | let fmt27call func = pyfuncall27 func | |
135 | let fmt28call func = pyfuncall28 func | |
136 | let fmt29call func = pyfuncall29 func | |
137 | let fmt30call func = pyfuncall30 func | |
138 | let fmt31call func = pyfuncall31 func | |
139 | (* 32 *) | |
140 | (* 33 *) | |
141 | let fmt34call func = pyfuncall34 func | |
142 | let fmt35call func = pyfuncall35 func | |
143 | let fmt36call func = pyfuncall36 func | |
144 | let fmt37call func = pyfuncall37 func | |
145 | (* 38 *) | |
146 | let fmt39call func = pyfuncall39 func | |
147 | let fmt40call func = pyfuncall40 func | |
148 | let fmt41call func = pyfuncall41 func | |
149 | let fmt42call func = pyfuncall42 func | |
150 | let fmt43call func = pyfuncall43 func | |
151 | let fmt44call func = pyfuncall44 func | |
152 | let fmt45call func = pyfuncall45 func | |
153 | let fmt46call func = pyfuncall46 func | |
154 | let fmt47call func = pyfuncall47 func | |
155 | let fmt48call func = pyfuncall48 func | |
156 | let fmt49call func = pyfuncall49 func | |
157 | let fmt50call func = pyfuncall50 func | |
158 | let fmt51call func = pyfuncall51 func | |
159 | let fmt52call func = pyfuncall52 func | |
160 | let fmt53call func = pyfuncall53 func | |
161 | let fmt54call func = pyfuncall54 func | |
162 | ||
163 | let py_cur_func_num = ref 0 | |
164 | let pnf () = let this_func = py_funcs.(!py_cur_func_num) in | |
165 | py_cur_func_num := !py_cur_func_num + 1 ; this_func | |
166 | ||
167 | (* 1 *) | |
168 | let py_initialize = fmt1call (pnf ()) | |
169 | let py_finalize = fmt1call (pnf ()) | |
170 | let pyerr_print = fmt1call (pnf ()) | |
171 | (* 2 *) | |
172 | let py_exit = fmt2call (pnf ()) | |
173 | let pyerr_printex = fmt2call (pnf ()) | |
174 | (* 3 *) | |
175 | let py_setprogramname = fmt3call (pnf ()) | |
176 | let py_setpythonhome = fmt3call (pnf ()) | |
177 | (* 4 *) | |
178 | let py_isinitialized = fmt4call (pnf ()) | |
179 | (* 5 *) | |
180 | let pyrun_simplestring = fmt5call (pnf ()) | |
181 | (* 6 *) | |
182 | let pyrun_anyfile = fmt6call (pnf ()) | |
183 | let pyrun_simplefile = fmt6call (pnf ()) | |
184 | let pyrun_interactiveone = fmt6call (pnf ()) | |
185 | let pyrun_interactiveloop = fmt6call (pnf ()) | |
186 | let py_fdisinteractive = fmt6call (pnf ()) | |
187 | (* 7 *) | |
188 | let pyrun_anyfileex = fmt7call (pnf ()) | |
189 | let pyrun_simplefileex = fmt7call (pnf ()) | |
190 | (* 8 *) | |
191 | let py_getprogramname = fmt8call (pnf ()) | |
192 | let py_getpythonhome = fmt8call (pnf ()) | |
193 | let py_getprogramfullpath = fmt8call (pnf ()) | |
194 | let py_getprefix = fmt8call (pnf ()) | |
195 | let py_getexecprefix = fmt8call (pnf ()) | |
196 | let py_getpath = fmt8call (pnf ()) | |
197 | let py_getversion = fmt8call (pnf ()) | |
198 | let py_getplatform = fmt8call (pnf ()) | |
199 | let py_getcopyright = fmt8call (pnf ()) | |
200 | let py_getcompiler = fmt8call (pnf ()) | |
201 | let py_getbuildinfo = fmt8call (pnf ()) | |
202 | (* 9 *) | |
203 | let pyrun_string = fmt9call (pnf ()) | |
204 | (* 10 *) | |
205 | let pyrun_file = fmt10call (pnf ()) | |
206 | (* 11 *) | |
207 | let pyrun_fileex = fmt11call (pnf ()) | |
208 | (* 12 *) | |
209 | let py_compilestring = fmt12call (pnf ()) | |
210 | (* 13 *) | |
211 | let pyobject_print = fmt13call (pnf ()) | |
212 | (* 14 *) | |
213 | let pyobject_repr = fmt14call (pnf ()) | |
214 | let pyobject_str = fmt14call (pnf ()) | |
215 | let pyobject_unicode = fmt14call (pnf ()) | |
216 | (* 15 *) | |
217 | let pyobject_richcompare = fmt15call (pnf ()) | |
218 | (* 16 *) | |
219 | let pyobject_getattrstring = fmt16call (pnf ()) | |
220 | (* 17 *) | |
221 | let pyobject_getattr = fmt17call (pnf ()) | |
222 | let pyobject_callobject = fmt17call (pnf ()) | |
223 | (* 18 *) | |
224 | let pyobject_istrue = fmt18call (pnf ()) | |
225 | let pyobject_not = fmt18call (pnf ()) | |
226 | let pycallable_check = fmt18call (pnf ()) | |
227 | (* 19 *) | |
228 | let pyobject_compare = fmt19call (pnf ()) | |
229 | let pyobject_hasattr = fmt19call (pnf ()) | |
230 | (* 20 *) | |
231 | let pyobject_richcomparebool = fmt20call (pnf ()) | |
232 | (* 21 *) | |
233 | let pyobject_setattrstring = fmt21call (pnf ()) | |
234 | (* 22 *) | |
235 | let pyobject_hasattrstring = fmt22call (pnf ()) | |
236 | (* 23 *) | |
237 | let pynumber_coerce = fmt23call (pnf ()) | |
238 | let pynumber_coerceex = fmt23call (pnf ()) | |
239 | (* 24 *) | |
240 | let pyobject_setattr = fmt24call (pnf ()) | |
241 | (* 25 *) | |
242 | let pyobject_hash = fmt25call (pnf ()) | |
243 | (* Strings *) | |
244 | (* 18 *) | |
245 | let pystring_size = fmt18call (pnf ()) | |
246 | (* 26 *) | |
247 | let pystring_asstring = fmt26call (pnf ()) | |
248 | (* 27 *) | |
249 | let pystring_concat = fmt27call (pnf ()) | |
250 | let pystring_concatanddel = fmt27call (pnf ()) | |
251 | (* 28 *) | |
252 | let pystring_fromstring = fmt28call (pnf ()) | |
253 | (* 17 *) | |
254 | let pystring_format = fmt17call (pnf ()) | |
255 | ||
256 | (* Dictionaries *) | |
257 | (* 29 *) | |
258 | let pydict_new = fmt29call (pnf ()) | |
259 | (* 17 *) | |
260 | let pydict_getitem = fmt17call (pnf ()) | |
261 | (* 24 *) | |
262 | let pydict_setitem = fmt24call (pnf ()) | |
263 | (* 19 *) | |
264 | let pydict_delitem = fmt19call (pnf ()) | |
265 | (* 30 *) | |
266 | let pydict_clear = fmt30call (pnf ()) | |
267 | (* 31 *) | |
268 | let pydict_next = fmt31call (pnf ()) | |
269 | (* 14 *) | |
270 | let pydict_keys = fmt14call (pnf ()) | |
271 | let pydict_values = fmt14call (pnf ()) | |
272 | let pydict_items = fmt14call (pnf ()) | |
273 | let pydict_copy = fmt14call (pnf ()) | |
274 | (* 18 *) | |
275 | let pydict_size = fmt18call (pnf ()) | |
276 | (* 16 *) | |
277 | let pydict_getitemstring = fmt16call (pnf ()) | |
278 | (* 22 *) | |
279 | let pydict_delitemstring = fmt22call (pnf ()) | |
280 | (* 21 *) | |
281 | let pydict_setitemstring = fmt21call (pnf ()) | |
282 | ||
283 | (* Integer *) | |
284 | (* 34 *) | |
285 | let pyint_fromlong = fmt34call (pnf ()) | |
286 | (* 25 *) | |
287 | let pyint_aslong = fmt25call (pnf ()) | |
288 | (* 35 *) | |
289 | let pyint_getmax = fmt35call (pnf ()) | |
290 | ||
291 | (* Float *) | |
292 | (* 36 *) | |
293 | let pyfloat_fromdouble = fmt36call (pnf ()) | |
294 | (* 37 *) | |
295 | let pyfloat_asdouble = fmt37call (pnf ()) | |
296 | ||
297 | (* Modules *) | |
298 | (* 28 *) | |
299 | let pymodule_new = fmt28call (pnf ()) | |
300 | (* 14 *) | |
301 | let pymodule_getdict = fmt14call (pnf ()) | |
302 | (* 26 *) | |
303 | let pymodule_getname = fmt26call (pnf ()) | |
304 | let pymodule_getfilename = fmt26call (pnf ()) | |
305 | ||
306 | (* 39 *) | |
307 | let pytuple_new = fmt39call (pnf ()) | |
308 | (* 18 *) | |
309 | let pytuple_size = fmt18call (pnf ()) | |
310 | let pytuple_check = fmt18call (pnf ()) | |
311 | (* 40 *) | |
312 | let pytuple_getitem = fmt40call (pnf ()) | |
313 | (* 41 *) | |
314 | let pytuple_setitem = fmt41call (pnf ()) | |
315 | (* 13 *) | |
316 | let pytuple_getslice = fmt13call (pnf ()) | |
317 | ||
318 | (* 42 *) | |
319 | let pyslice_new = fmt42call (pnf ()) | |
320 | (* 43 *) | |
321 | let pyslice_getindices = fmt43call (pnf ()) | |
322 | (* 44 *) | |
323 | let pyrange_new = fmt44call (pnf ()) | |
324 | ||
325 | (* Error handling definitions *) | |
326 | ||
327 | (* 30 *) | |
328 | let pyerr_setnone = fmt30call (pnf ()) | |
329 | (* 45 *) | |
330 | let pyerr_setobject = fmt45call (pnf ()) | |
331 | (* 46 *) | |
332 | let pyerr_setstring = fmt46call (pnf ()) | |
333 | (* 29 *) | |
334 | let pyerr_occurred = fmt29call (pnf ()) | |
335 | (* 1 *) | |
336 | let pyerr_clear = fmt1call (pnf ()) | |
337 | (* 47 *) | |
338 | let pyerr_fetch = fmt47call (pnf ()) | |
339 | (* 48 *) | |
340 | let pyerr_restore = fmt48call (pnf ()) | |
341 | ||
342 | (* Error testing and normalization *) | |
343 | (* 19 *) | |
344 | let pyerr_givenexceptionmatches = fmt19call (pnf ()) | |
345 | (* 18 *) | |
346 | let pyerr_exceptionmatches = fmt18call (pnf ()) | |
347 | (* 47 *) | |
348 | let pyerr_normalizeexception = fmt47call (pnf ()) | |
349 | ||
350 | (* Classes *) | |
351 | (* 42 *) | |
352 | let pyclass_new = fmt42call (pnf ()) | |
353 | (* 42 *) | |
354 | let pyinstance_new = fmt42call (pnf ()) | |
355 | ||
356 | (* 17 *) | |
357 | let pyinstance_newraw = fmt17call (pnf ()) | |
358 | (* 42 *) | |
359 | let pymethod_new = fmt42call (pnf ()) | |
360 | (* 14 *) | |
361 | let pymethod_function = fmt14call (pnf ()) | |
362 | let pymethod_self = fmt14call (pnf ()) | |
363 | let pymethod_class = fmt14call (pnf ()) | |
364 | ||
365 | (* Module *) | |
366 | (* 28 *) | |
367 | let pymodule_new = fmt28call (pnf ()) | |
368 | (* 14 *) | |
369 | let pymodule_getdict = fmt14call (pnf ()) | |
370 | (* 26 *) | |
371 | let pymodule_getname = fmt26call (pnf ()) | |
372 | let pymodule_getfilename = fmt26call (pnf ()) | |
373 | (* 35 *) | |
374 | let pyimport_getmagicnumber = fmt35call (pnf ()) | |
375 | (* 49 *) | |
376 | let pyimport_execcodemodule = fmt49call (pnf ()) | |
377 | (* 50 *) | |
378 | let pyimport_execcodemoduleex = fmt50call (pnf ()) | |
379 | (* 29 *) | |
380 | let pyimport_getmoduledict = fmt29call (pnf ()) | |
381 | (* 28 *) | |
382 | let pyimport_addmodule = fmt28call (pnf ()) | |
383 | let pyimport_importmodule = fmt28call (pnf ()) | |
384 | (* 51 *) | |
385 | let pyimport_importmoduleex = fmt51call (pnf ()) | |
386 | (* 28 *) | |
387 | let pyimport_import = fmt28call (pnf ()) | |
388 | (* 14 *) | |
389 | let pyimport_reloadmodule = fmt14call (pnf ()) | |
390 | (* 1 *) | |
391 | let pyimport_cleanup = fmt1call (pnf ()) | |
392 | (* 5 *) | |
393 | let pyimport_importfrozenmodule = fmt5call (pnf ()) | |
394 | ||
395 | (* Interface to random parts in ceval.c *) | |
396 | (* 42 *) | |
397 | let pyeval_callobjectwithkeywords = fmt42call (pnf ()) | |
398 | (* 17 *) | |
399 | let pyeval_callobject = fmt17call (pnf ()) | |
400 | ||
401 | (* 29 *) | |
402 | let pyeval_getbuiltins = fmt29call (pnf ()) | |
403 | let pyeval_getglobals = fmt29call (pnf ()) | |
404 | let pyeval_getlocals = fmt29call (pnf ()) | |
405 | let pyeval_getframe = fmt29call (pnf ()) | |
406 | (* 4 *) | |
407 | let pyeval_getrestricted = fmt4call (pnf ()) | |
408 | ||
409 | (* Abstract layer *) | |
410 | (* 14 *) | |
411 | let pyobject_type = fmt14call (pnf ()) | |
412 | (* 18 *) | |
413 | let pyobject_size = fmt18call (pnf ()) | |
414 | (* 17 *) | |
415 | let pyobject_getitem = fmt17call (pnf ()) | |
416 | (* 24 *) | |
417 | let pyobject_setitem = fmt24call (pnf ()) | |
418 | (* 17 *) | |
419 | let pyobject_delitem = fmt17call (pnf ()) | |
420 | (* 52 *) | |
421 | let pyobject_ascharbuffer = fmt52call (pnf ()) | |
422 | let pyobject_asreadbuffer = fmt52call (pnf ()) | |
423 | let pyobject_aswritebuffer = fmt52call (pnf ()) | |
424 | (* 18 *) | |
425 | let pynumber_check = fmt18call (pnf ()) | |
426 | (* 17 *) | |
427 | let pynumber_add = fmt17call (pnf ()) | |
428 | let pynumber_subtract = fmt17call (pnf ()) | |
429 | let pynumber_multiply = fmt17call (pnf ()) | |
430 | let pynumber_divide = fmt17call (pnf ()) | |
431 | let pynumber_remainder = fmt17call (pnf ()) | |
432 | let pynumber_divmod = fmt17call (pnf ()) | |
433 | (* 42 *) | |
434 | let pynumber_power = fmt42call (pnf ()) | |
435 | (* 14 *) | |
436 | let pynumber_negative = fmt14call (pnf ()) | |
437 | let pynumber_positive = fmt14call (pnf ()) | |
438 | let pynumber_absolute = fmt14call (pnf ()) | |
439 | let pynumber_invert = fmt14call (pnf ()) | |
440 | (* 17 *) | |
441 | let pynumber_lshift = fmt17call (pnf ()) | |
442 | let pynumber_rshift = fmt17call (pnf ()) | |
443 | let pynumber_and = fmt17call (pnf ()) | |
444 | let pynumber_xor = fmt17call (pnf ()) | |
445 | let pynumber_or = fmt17call (pnf ()) | |
446 | (* 14 *) | |
447 | let pynumber_int = fmt14call (pnf ()) | |
448 | let pynumber_long = fmt14call (pnf ()) | |
449 | let pynumber_float = fmt14call (pnf ()) | |
450 | (* 17 *) | |
451 | let pynumber_inplaceadd = fmt17call (pnf ()) | |
452 | let pynumber_inplacesubtract = fmt17call (pnf ()) | |
453 | let pynumber_inplacemultiply = fmt17call (pnf ()) | |
454 | let pynumber_inplacedivide = fmt17call (pnf ()) | |
455 | let pynumber_inplaceremainder = fmt17call (pnf ()) | |
456 | let pynumber_inplacelshift = fmt17call (pnf ()) | |
457 | let pynumber_inplacershift = fmt17call (pnf ()) | |
458 | let pynumber_inplaceand = fmt17call (pnf ()) | |
459 | let pynumber_inplacexor = fmt17call (pnf ()) | |
460 | let pynumber_inplaceor = fmt17call (pnf ()) | |
461 | (* 42 *) | |
462 | let pynumber_inplacepower = fmt42call (pnf ()) | |
463 | (* 18 *) | |
464 | let pysequence_check = fmt18call (pnf ()) | |
465 | let pysequence_size = fmt18call (pnf ()) | |
466 | let pysequence_length = fmt18call (pnf ()) | |
467 | (* 17 *) | |
468 | let pysequence_concat = fmt17call (pnf ()) | |
469 | (* 40 *) | |
470 | let pysequence_repeat = fmt40call (pnf ()) | |
471 | let pysequence_getitem = fmt40call (pnf ()) | |
472 | (* 13 *) | |
473 | let pysequence_getslice = fmt13call (pnf ()) | |
474 | (* 41 *) | |
475 | let pysequence_setitem = fmt41call (pnf ()) | |
476 | (* 20 *) | |
477 | let pysequence_delitem = fmt20call (pnf ()) | |
478 | (* 53 *) | |
479 | let pysequence_setslice = fmt53call (pnf ()) | |
480 | (* 54 *) | |
481 | let pysequence_delslice = fmt54call (pnf ()) | |
482 | (* 14 *) | |
483 | let pysequence_tuple = fmt14call (pnf ()) | |
484 | let pysequence_list = fmt14call (pnf ()) | |
485 | (* 16 *) | |
486 | let pysequence_fast = fmt16call (pnf ()) | |
487 | (* 19 *) | |
488 | let pysequence_count = fmt19call (pnf ()) | |
489 | let pysequence_contains = fmt19call (pnf ()) | |
490 | let pysequence_in = fmt19call (pnf ()) | |
491 | let pysequence_index = fmt19call (pnf ()) | |
492 | (* 17 *) | |
493 | let pysequence_inplaceconcat = fmt17call (pnf ()) | |
494 | (* 22 *) | |
495 | let pysequence_inplacerepeat = fmt22call (pnf ()) | |
496 | (* 18 *) | |
497 | let pymapping_check = fmt18call (pnf ()) | |
498 | let pymapping_size = fmt18call (pnf ()) | |
499 | let pymapping_length = fmt18call (pnf ()) | |
500 | (* 16 *) | |
501 | let pymapping_haskeystring = fmt16call (pnf ()) | |
502 | (* 19 *) | |
503 | let pymapping_haskey = fmt19call (pnf ()) | |
504 | (* 16 *) | |
505 | let pymapping_getitemstring = fmt16call (pnf ()) | |
506 | (* 41 *) | |
507 | let pymapping_setitemstring = fmt41call (pnf ()) | |
508 | ||
509 | external pynull : unit -> pyobject = "pynull" | |
510 | ||
511 | external pynone : unit -> pyobject = "pynone" | |
512 | external pytrue : unit -> pyobject = "pytrue" | |
513 | external pyfalse : unit -> pyobject = "pyfalse" | |
514 | ||
515 | external pytuple_fromarray : pyobject array -> pyobject = "pytuple_fromarray" | |
516 | let pytuple_fromsingle elt = pytuple_fromarray [| elt |] | |
517 | let pytuple_empty = pytuple_fromarray [| |] | |
518 | external pytuple2 : (pyobject * pyobject) -> pyobject = | |
519 | "pytuple_fromarray" | |
520 | external pytuple3 : (pyobject * pyobject * pyobject) -> pyobject = | |
521 | "pytuple_fromarray" | |
522 | external pytuple4 : (pyobject * pyobject * pyobject * pyobject) -> | |
523 | pyobject = "pytuple_fromarray" | |
524 | external pytuple5 : (pyobject * pyobject * pyobject * pyobject * pyobject) -> | |
525 | pyobject = "pytuple_fromarray" | |
485bce71 C |
526 | external pytuple6 : (pyobject * pyobject * pyobject * pyobject * pyobject * pyobject) -> |
527 | pyobject = "pytuple_fromarray" | |
34e49164 C |
528 | |
529 | let pyint_fromint i = pyint_fromlong (Int64.of_int i) | |
530 | let pyint_asint obj = Int64.to_int (pyint_aslong obj) | |
531 | ||
532 | external pytuple_toarray : pyobject -> pyobject array = "pytuple_toarray" | |
533 | ||
534 | external pywrap_closure : (pyobject -> pyobject) -> pyobject = "pywrap_closure" | |
535 | external pycaml_setargs : string -> unit = "pycaml_setargs" | |
536 | ||
537 | external pymodule_initmodule : string -> pymodule_func array = "pymodule_initmodule" | |
538 | ||
539 | external pywrap_value : 'a -> pyobject = "pywrapvalue" ;; | |
540 | ||
541 | external pyunwrap_value : pyobject -> 'a = "pyunwrapvalue" ;; | |
542 | ||
543 | let _ = py_initialize () ;; |