python2.5.pxd 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. # From: Eric Huss <e-huss@netmeridian.com>
  2. #
  3. # Here is my latest copy. It does not cover 100% of the API. It should be
  4. # current up to 2.5.
  5. #
  6. # -Eric
  7. # XXX:
  8. # - Need to support "long long" definitions that are different for different platforms.
  9. # - Support unicode platform dependencies.
  10. # - Add unicode calls.
  11. # - Add setobject calls.
  12. cdef extern from "stdio.h":
  13. ctypedef struct FILE:
  14. pass
  15. cdef extern from "Python.h":
  16. # XXX: This is platform dependent.
  17. ctypedef unsigned short Py_UNICODE
  18. ctypedef struct PyTypeObject:
  19. pass
  20. ctypedef struct PyObject:
  21. Py_ssize_t ob_refcnt
  22. PyTypeObject * ob_type
  23. ###############################################################################################
  24. # bool
  25. ###############################################################################################
  26. PyObject * Py_False
  27. PyObject * Py_True
  28. PyTypeObject PyBool_Type
  29. int PyBool_Check (object) # Always succeeds.
  30. object PyBool_FromLong (long)
  31. ###############################################################################################
  32. # buffer
  33. ###############################################################################################
  34. PyTypeObject PyBuffer_Type
  35. int Py_END_OF_BUFFER
  36. int PyBuffer_Check (object) # Always succeeds.
  37. object PyBuffer_FromMemory (void *, Py_ssize_t)
  38. object PyBuffer_FromObject (object, Py_ssize_t, Py_ssize_t)
  39. object PyBuffer_FromReadWriteMemory (void *, Py_ssize_t)
  40. object PyBuffer_FromReadWriteObject (object, Py_ssize_t, Py_ssize_t)
  41. object PyBuffer_New (Py_ssize_t)
  42. int PyObject_AsCharBuffer (object, char **, Py_ssize_t *) except -1
  43. int PyObject_AsReadBuffer (object, void **, Py_ssize_t *) except -1
  44. int PyObject_AsWriteBuffer (object, void **, Py_ssize_t *) except -1
  45. int PyObject_CheckReadBuffer (object) # Always succeeds.
  46. ###############################################################################################
  47. # cobject
  48. ###############################################################################################
  49. PyTypeObject PyCObject_Type
  50. int PyCObject_Check(object) # Always succeeds.
  51. object PyCObject_FromVoidPtr(void *, void (*)(void*))
  52. object PyCObject_FromVoidPtrAndDesc(void *, void *, void (*)(void*,void*))
  53. void * PyCObject_AsVoidPtr(object) except NULL
  54. void * PyCObject_GetDesc(object) except NULL
  55. void * PyCObject_Import(char *, char *) except NULL
  56. ###############################################################################################
  57. # compile
  58. ###############################################################################################
  59. ctypedef struct PyCodeObject:
  60. int co_argcount
  61. int co_nlocals
  62. int co_stacksize
  63. int co_flags
  64. PyObject *co_code
  65. PyObject *co_consts
  66. PyObject *co_names
  67. PyObject *co_varnames
  68. PyObject *co_freevars
  69. PyObject *co_cellvars
  70. PyObject *co_filename
  71. PyObject *co_name
  72. int co_firstlineno
  73. PyObject *co_lnotab
  74. int PyCode_Addr2Line(PyCodeObject *, int)
  75. ###############################################################################################
  76. # complex
  77. ###############################################################################################
  78. ctypedef struct Py_complex:
  79. double real
  80. double imag
  81. PyTypeObject PyComplex_Type
  82. Py_complex PyComplex_AsCComplex (object) # Always succeeds.
  83. int PyComplex_Check (object) # Always succeeds.
  84. int PyComplex_CheckExact (object) # Always succeeds.
  85. object PyComplex_FromCComplex (Py_complex)
  86. object PyComplex_FromDoubles (double, double)
  87. double PyComplex_ImagAsDouble (object) except? -1
  88. double PyComplex_RealAsDouble (object) except? -1
  89. Py_complex _Py_c_diff (Py_complex, Py_complex)
  90. Py_complex _Py_c_neg (Py_complex)
  91. Py_complex _Py_c_pow (Py_complex, Py_complex)
  92. Py_complex _Py_c_prod (Py_complex, Py_complex)
  93. Py_complex _Py_c_quot (Py_complex, Py_complex)
  94. Py_complex _Py_c_sum (Py_complex, Py_complex)
  95. ###############################################################################################
  96. # dict
  97. ###############################################################################################
  98. PyTypeObject PyDict_Type
  99. int PyDict_Check (object) # Always succeeds.
  100. int PyDict_CheckExact (object) # Always succeeds.
  101. void PyDict_Clear (object)
  102. int PyDict_Contains (object, object) except -1
  103. object PyDict_Copy (object)
  104. int PyDict_DelItem (object, object) except -1
  105. int PyDict_DelItemString (object, char *) except -1
  106. object PyDict_Items (object)
  107. object PyDict_Keys (object)
  108. int PyDict_Merge (object, object, int) except -1
  109. int PyDict_MergeFromSeq2 (object, object, int) except -1
  110. object PyDict_New ()
  111. # XXX: Pyrex doesn't support pointer to a python object?
  112. #int PyDict_Next (object, Py_ssize_t *, object *, object *) # Always succeeds.
  113. int PyDict_SetItem (object, object, object) except -1
  114. int PyDict_SetItemString (object, char *, object) except -1
  115. Py_ssize_t PyDict_Size (object) except -1
  116. int PyDict_Update (object, object) except -1
  117. object PyDict_Values (object)
  118. # XXX: Borrowed reference. No exception on NULL.
  119. #object PyDict_GetItem (object, object)
  120. # XXX: Borrowed reference. No exception on NULL
  121. #object PyDict_GetItemString (object, char *)
  122. ###############################################################################################
  123. # float
  124. ###############################################################################################
  125. PyTypeObject PyFloat_Type
  126. int _PyFloat_Pack4 (double, unsigned char *, int) except -1
  127. int _PyFloat_Pack8 (double, unsigned char *, int) except -1
  128. double _PyFloat_Unpack4 (unsigned char *, int) except? -1
  129. double _PyFloat_Unpack8 (unsigned char *, int) except? -1
  130. double PyFloat_AS_DOUBLE (object)
  131. double PyFloat_AsDouble (object) except? -1
  132. void PyFloat_AsReprString (char*, object)
  133. void PyFloat_AsString (char*, object)
  134. int PyFloat_Check (object) # Always succeeds.
  135. int PyFloat_CheckExact (object) # Always succeeds.
  136. object PyFloat_FromDouble (double)
  137. object PyFloat_FromString (object, char**)
  138. ###############################################################################################
  139. # frame
  140. ###############################################################################################
  141. ctypedef struct PyFrameObject:
  142. PyFrameObject *f_back
  143. PyCodeObject *f_code
  144. PyObject *f_builtins
  145. PyObject *f_globals
  146. PyObject *f_locals
  147. PyObject *f_trace
  148. PyObject *f_exc_type
  149. PyObject *f_exc_value
  150. PyObject *f_exc_traceback
  151. int f_lasti
  152. int f_lineno
  153. int f_restricted
  154. int f_iblock
  155. int f_nlocals
  156. int f_ncells
  157. int f_nfreevars
  158. int f_stacksize
  159. ###############################################################################################
  160. # int
  161. ###############################################################################################
  162. PyTypeObject PyInt_Type
  163. long PyInt_AS_LONG (object) # Always succeeds.
  164. long PyInt_AsLong (object) except? -1
  165. Py_ssize_t PyInt_AsSsize_t (object) except? -1
  166. unsigned long long PyInt_AsUnsignedLongLongMask (object) except? -1
  167. unsigned long PyInt_AsUnsignedLongMask (object) except? -1
  168. int PyInt_Check (object) # Always succeeds.
  169. int PyInt_CheckExact (object) # Always succeeds.
  170. object PyInt_FromLong (long)
  171. object PyInt_FromSsize_t (Py_ssize_t)
  172. object PyInt_FromString (char*, char**, int)
  173. object PyInt_FromUnicode (Py_UNICODE*, Py_ssize_t, int)
  174. long PyInt_GetMax () # Always succeeds.
  175. ###############################################################################################
  176. # iterator
  177. ###############################################################################################
  178. int PyIter_Check (object) # Always succeeds.
  179. object PyIter_Next (object)
  180. ###############################################################################################
  181. # list
  182. ###############################################################################################
  183. PyTypeObject PyList_Type
  184. int PyList_Append (object, object) except -1
  185. object PyList_AsTuple (object)
  186. int PyList_Check (object) # Always succeeds.
  187. int PyList_CheckExact (object) # Always succeeds.
  188. int PyList_GET_SIZE (object) # Always succeeds.
  189. object PyList_GetSlice (object, Py_ssize_t, Py_ssize_t)
  190. int PyList_Insert (object, Py_ssize_t, object) except -1
  191. object PyList_New (Py_ssize_t)
  192. int PyList_Reverse (object) except -1
  193. int PyList_SetSlice (object, Py_ssize_t, Py_ssize_t, object) except -1
  194. Py_ssize_t PyList_Size (object) except -1
  195. int PyList_Sort (object) except -1
  196. ###############################################################################################
  197. # long
  198. ###############################################################################################
  199. PyTypeObject PyLong_Type
  200. int _PyLong_AsByteArray (object, unsigned char *, size_t, int, int) except -1
  201. object _PyLong_FromByteArray (unsigned char *, size_t, int, int)
  202. size_t _PyLong_NumBits (object) except -1
  203. int _PyLong_Sign (object) # No error.
  204. long PyLong_AsLong (object) except? -1
  205. long long PyLong_AsLongLong (object) except? -1
  206. unsigned long PyLong_AsUnsignedLong (object) except? -1
  207. unsigned long PyLong_AsUnsignedLongMask (object) except? -1
  208. unsigned long long PyLong_AsUnsignedLongLong (object) except? -1
  209. unsigned long long PyLong_AsUnsignedLongLongMask (object) except? -1
  210. int PyLong_Check (object) # Always succeeds.
  211. int PyLong_CheckExact (object) # Always succeeds.
  212. object PyLong_FromDouble (double)
  213. object PyLong_FromLong (long)
  214. object PyLong_FromLongLong (long long)
  215. object PyLong_FromUnsignedLong (unsigned long)
  216. object PyLong_FromUnsignedLongLong (unsigned long long)
  217. double PyLong_AsDouble (object) except? -1
  218. object PyLong_FromVoidPtr (void *)
  219. void * PyLong_AsVoidPtr (object) except NULL
  220. object PyLong_FromString (char *, char **, int)
  221. object PyLong_FromUnicode (Py_UNICODE*, Py_ssize_t, int)
  222. ###############################################################################################
  223. # mapping
  224. ###############################################################################################
  225. int PyMapping_Check (object) # Always succeeds.
  226. int PyMapping_DelItem (object, object) except -1
  227. int PyMapping_DelItemString (object, char *) except -1
  228. object PyMapping_GetItemString (object, char *)
  229. int PyMapping_HasKey (object, object) # Always succeeds.
  230. int PyMapping_HasKeyString (object, char *) # Always succeeds.
  231. object PyMapping_Items (object)
  232. object PyMapping_Keys (object)
  233. Py_ssize_t PyMapping_Length (object) except -1
  234. int PyMapping_SetItemString (object, char *, object) except -1
  235. Py_ssize_t PyMapping_Size (object) except -1
  236. object PyMapping_Values (object)
  237. ###############################################################################################
  238. # mem
  239. ###############################################################################################
  240. void PyMem_Free (void * p)
  241. void * PyMem_Malloc (size_t n)
  242. void * PyMem_Realloc (void *, size_t)
  243. ###############################################################################################
  244. # modsupport
  245. ###############################################################################################
  246. object Py_BuildValue (char *, ...)
  247. object Py_VaBuildValue (char *, va_list)
  248. ###############################################################################################
  249. # number
  250. ###############################################################################################
  251. object PyNumber_Absolute (object)
  252. object PyNumber_Add (object, object)
  253. object PyNumber_And (object, object)
  254. Py_ssize_t PyNumber_AsSsize_t (object, object) except? -1
  255. int PyNumber_Check (object) # Always succeeds.
  256. # XXX: Pyrex doesn't support pointer to python object?
  257. #int PyNumber_Coerce (object*, object*) except -1
  258. object PyNumber_Divide (object, object)
  259. object PyNumber_Divmod (object, object)
  260. object PyNumber_Float (object)
  261. object PyNumber_FloorDivide (object, object)
  262. object PyNumber_InPlaceAdd (object, object)
  263. object PyNumber_InPlaceAnd (object, object)
  264. object PyNumber_InPlaceDivide (object, object)
  265. object PyNumber_InPlaceFloorDivide (object, object)
  266. object PyNumber_InPlaceLshift (object, object)
  267. object PyNumber_InPlaceMultiply (object, object)
  268. object PyNumber_InPlaceOr (object, object)
  269. object PyNumber_InPlacePower (object, object, object)
  270. object PyNumber_InPlaceRemainder (object, object)
  271. object PyNumber_InPlaceRshift (object, object)
  272. object PyNumber_InPlaceSubtract (object, object)
  273. object PyNumber_InPlaceTrueDivide (object, object)
  274. object PyNumber_InPlaceXor (object, object)
  275. object PyNumber_Int (object)
  276. object PyNumber_Invert (object)
  277. object PyNumber_Long (object)
  278. object PyNumber_Lshift (object, object)
  279. object PyNumber_Multiply (object, object)
  280. object PyNumber_Negative (object)
  281. object PyNumber_Or (object, object)
  282. object PyNumber_Positive (object)
  283. object PyNumber_Power (object, object, object)
  284. object PyNumber_Remainder (object, object)
  285. object PyNumber_Rshift (object, object)
  286. object PyNumber_Subtract (object, object)
  287. object PyNumber_TrueDivide (object, object)
  288. object PyNumber_Xor (object, object)
  289. ###############################################################################################
  290. # object
  291. ###############################################################################################
  292. int PyCallable_Check (object) # Always succeeds.
  293. int PyObject_AsFileDescriptor (object) except -1
  294. object PyObject_Call (object, object, object)
  295. object PyObject_CallFunction (object, char *, ...)
  296. object PyObject_CallFunctionObjArgs (object, ...)
  297. object PyObject_CallMethod (object, char *, char *, ...)
  298. object PyObject_CallMethodObjArgs (object, object, ...)
  299. object PyObject_CallObject (object, object)
  300. int PyObject_Cmp (object, object, int *result) except -1
  301. # Use PyObject_Cmp instead.
  302. #int PyObject_Compare (object, object)
  303. int PyObject_DelAttr (object, object) except -1
  304. int PyObject_DelAttrString (object, char *) except -1
  305. int PyObject_DelItem (object, object) except -1
  306. int PyObject_DelItemString (object, char *) except -1
  307. object PyObject_Dir (object)
  308. object PyObject_GetAttr (object, object)
  309. object PyObject_GetAttrString (object, char *)
  310. object PyObject_GetItem (object, object)
  311. object PyObject_GetIter (object)
  312. int PyObject_HasAttr (object, object) # Always succeeds.
  313. int PyObject_HasAttrString (object, char *) # Always succeeds.
  314. long PyObject_Hash (object) except -1
  315. int PyObject_IsInstance (object, object) except -1
  316. int PyObject_IsSubclass (object, object) except -1
  317. int PyObject_IsTrue (object) except -1
  318. Py_ssize_t PyObject_Length (object) except -1
  319. int PyObject_Not (object) except -1
  320. int PyObject_Print (object, FILE *, int) except -1
  321. object PyObject_Repr (object)
  322. object PyObject_RichCompare (object, object, int)
  323. int PyObject_RichCompareBool (object, object, int) except -1
  324. int PyObject_SetAttr (object, object, object) except -1
  325. int PyObject_SetAttrString (object, char *, object) except -1
  326. int PyObject_SetItem (object, object, object) except -1
  327. Py_ssize_t PyObject_Size (object) except -1
  328. object PyObject_Str (object)
  329. object PyObject_Type (object)
  330. int PyObject_TypeCheck (object, object) # Always succeeds.
  331. object PyObject_Unicode (object)
  332. ###############################################################################################
  333. # pyerrors
  334. ###############################################################################################
  335. int PyErr_BadArgument ()
  336. void PyErr_BadInternalCall ()
  337. int PyErr_CheckSignals ()
  338. void PyErr_Clear ()
  339. int PyErr_ExceptionMatches (object)
  340. object PyErr_Format (object, char *, ...)
  341. int PyErr_GivenExceptionMatches (object, object)
  342. object PyErr_NoMemory ()
  343. object PyErr_Occurred ()
  344. void PyErr_Restore (object, object, object)
  345. object PyErr_SetFromErrno (object)
  346. object PyErr_SetFromErrnoWithFilename (object, char *)
  347. object PyErr_SetFromErrnoWithFilenameObject (object, object)
  348. void PyErr_SetInterrupt ()
  349. void PyErr_SetNone (object)
  350. void PyErr_SetObject (object, object)
  351. void PyErr_SetString (object, char *)
  352. int PyErr_Warn (object, char *)
  353. int PyErr_WarnExplicit (object, char *, char *, int, char *, object)
  354. void PyErr_WriteUnraisable (object)
  355. ###############################################################################################
  356. # pyeval
  357. # Be extremely careful with these functions.
  358. ###############################################################################################
  359. ctypedef struct PyThreadState:
  360. PyFrameObject * frame
  361. int recursion_depth
  362. void * curexc_type, * curexc_value, * curexc_traceback
  363. void * exc_type, * exc_value, * exc_traceback
  364. void PyEval_AcquireLock ()
  365. void PyEval_ReleaseLock ()
  366. void PyEval_AcquireThread (PyThreadState *)
  367. void PyEval_ReleaseThread (PyThreadState *)
  368. PyThreadState* PyEval_SaveThread ()
  369. void PyEval_RestoreThread (PyThreadState *)
  370. ###############################################################################################
  371. # pystate
  372. # Be extremely careful with these functions. Read PEP 311 for more detail.
  373. ###############################################################################################
  374. ctypedef int PyGILState_STATE
  375. PyGILState_STATE PyGILState_Ensure ()
  376. void PyGILState_Release (PyGILState_STATE)
  377. ctypedef struct PyInterpreterState:
  378. pass
  379. PyThreadState* PyThreadState_New (PyInterpreterState *)
  380. void PyThreadState_Clear (PyThreadState *)
  381. void PyThreadState_Delete (PyThreadState *)
  382. PyThreadState* PyThreadState_Get ()
  383. PyThreadState* PyThreadState_Swap (PyThreadState *tstate)
  384. # XXX: Borrowed reference.
  385. #object PyThreadState_GetDict ()
  386. ###############################################################################################
  387. # run
  388. # Functions for embedded interpreters are not included.
  389. ###############################################################################################
  390. ctypedef struct PyCompilerFlags:
  391. int cf_flags
  392. ctypedef struct _node:
  393. pass
  394. ctypedef void (*PyOS_sighandler_t)(int)
  395. void PyErr_Display (object, object, object)
  396. void PyErr_Print ()
  397. void PyErr_PrintEx (int)
  398. char * PyOS_Readline (FILE *, FILE *, char *)
  399. PyOS_sighandler_t PyOS_getsig (int)
  400. PyOS_sighandler_t PyOS_setsig (int, PyOS_sighandler_t)
  401. _node * PyParser_SimpleParseFile (FILE *, char *, int) except NULL
  402. _node * PyParser_SimpleParseFileFlags (FILE *, char *, int,
  403. int) except NULL
  404. _node * PyParser_SimpleParseString (char *, int) except NULL
  405. _node * PyParser_SimpleParseStringFlagsFilename(char *, char *,
  406. int, int) except NULL
  407. _node * PyParser_SimpleParseStringFlags (char *, int, int) except NULL
  408. int PyRun_AnyFile (FILE *, char *) except -1
  409. int PyRun_AnyFileEx (FILE *, char *, int) except -1
  410. int PyRun_AnyFileExFlags (FILE *, char *, int,
  411. PyCompilerFlags *) except -1
  412. int PyRun_AnyFileFlags (FILE *, char *,
  413. PyCompilerFlags *) except -1
  414. object PyRun_File (FILE *, char *, int,
  415. object, object)
  416. object PyRun_FileEx (FILE *, char *, int,
  417. object, object, int)
  418. object PyRun_FileExFlags (FILE *, char *, int,
  419. object, object, int,
  420. PyCompilerFlags *)
  421. object PyRun_FileFlags (FILE *, char *, int,
  422. object, object,
  423. PyCompilerFlags *)
  424. int PyRun_InteractiveLoop (FILE *, char *) except -1
  425. int PyRun_InteractiveLoopFlags (FILE *, char *,
  426. PyCompilerFlags *) except -1
  427. int PyRun_InteractiveOne (FILE *, char *) except -1
  428. int PyRun_InteractiveOneFlags (FILE *, char *,
  429. PyCompilerFlags *) except -1
  430. int PyRun_SimpleFile (FILE *, char *) except -1
  431. int PyRun_SimpleFileEx (FILE *, char *, int) except -1
  432. int PyRun_SimpleFileExFlags (FILE *, char *, int,
  433. PyCompilerFlags *) except -1
  434. int PyRun_SimpleString (char *) except -1
  435. int PyRun_SimpleStringFlags (char *, PyCompilerFlags *) except -1
  436. object PyRun_String (char *, int, object,
  437. object)
  438. object PyRun_StringFlags (char *, int, object,
  439. object, PyCompilerFlags *)
  440. int Py_AtExit (void (*func)())
  441. object Py_CompileString (char *, char *, int)
  442. object Py_CompileStringFlags (char *, char *, int, PyCompilerFlags *)
  443. void Py_Exit (int)
  444. int Py_FdIsInteractive (FILE *, char *) # Always succeeds.
  445. char * Py_GetBuildInfo ()
  446. char * Py_GetCompiler ()
  447. char * Py_GetCopyright ()
  448. char * Py_GetExecPrefix ()
  449. char * Py_GetPath ()
  450. char * Py_GetPlatform ()
  451. char * Py_GetPrefix ()
  452. char * Py_GetProgramFullPath ()
  453. char * Py_GetProgramName ()
  454. char * Py_GetPythonHome ()
  455. char * Py_GetVersion ()
  456. ###############################################################################################
  457. # sequence
  458. ###############################################################################################
  459. int PySequence_Check (object) # Always succeeds.
  460. object PySequence_Concat (object, object)
  461. int PySequence_Contains (object, object) except -1
  462. Py_ssize_t PySequence_Count (object, object) except -1
  463. int PySequence_DelItem (object, Py_ssize_t) except -1
  464. int PySequence_DelSlice (object, Py_ssize_t, Py_ssize_t) except -1
  465. object PySequence_Fast (object, char *)
  466. int PySequence_Fast_GET_SIZE (object)
  467. object PySequence_GetItem (object, Py_ssize_t)
  468. object PySequence_GetSlice (object, Py_ssize_t, Py_ssize_t)
  469. object PySequence_ITEM (object, int)
  470. int PySequence_In (object, object) except -1
  471. object PySequence_InPlaceConcat (object, object)
  472. object PySequence_InPlaceRepeat (object, Py_ssize_t)
  473. Py_ssize_t PySequence_Index (object, object) except -1
  474. Py_ssize_t PySequence_Length (object) except -1
  475. object PySequence_List (object)
  476. object PySequence_Repeat (object, Py_ssize_t)
  477. int PySequence_SetItem (object, Py_ssize_t, object) except -1
  478. int PySequence_SetSlice (object, Py_ssize_t, Py_ssize_t, object) except -1
  479. Py_ssize_t PySequence_Size (object) except -1
  480. object PySequence_Tuple (object)
  481. ###############################################################################################
  482. # string
  483. ###############################################################################################
  484. PyTypeObject PyString_Type
  485. # Pyrex cannot support resizing because you have no choice but to use
  486. # realloc which may call free() on the object, and there's no way to tell
  487. # Pyrex to "forget" reference counting for the object.
  488. #int _PyString_Resize (object *, Py_ssize_t) except -1
  489. char * PyString_AS_STRING (object) # Always succeeds.
  490. object PyString_AsDecodedObject (object, char *, char *)
  491. object PyString_AsEncodedObject (object, char *, char *)
  492. object PyString_AsEncodedString (object, char *, char *)
  493. char * PyString_AsString (object) except NULL
  494. int PyString_AsStringAndSize (object, char **, Py_ssize_t *) except -1
  495. int PyString_Check (object) # Always succeeds.
  496. int PyString_CHECK_INTERNED (object) # Always succeeds.
  497. int PyString_CheckExact (object) # Always succeeds.
  498. # XXX: Pyrex doesn't support pointer to a python object?
  499. #void PyString_Concat (object *, object)
  500. # XXX: Pyrex doesn't support pointer to a python object?
  501. #void PyString_ConcatAndDel (object *, object)
  502. object PyString_Decode (char *, int, char *, char *)
  503. object PyString_DecodeEscape (char *, int, char *, int, char *)
  504. object PyString_Encode (char *, int, char *, char *)
  505. object PyString_Format (object, object)
  506. object PyString_FromFormat (char*, ...)
  507. object PyString_FromFormatV (char*, va_list)
  508. object PyString_FromString (char *)
  509. object PyString_FromStringAndSize (char *, Py_ssize_t)
  510. Py_ssize_t PyString_GET_SIZE (object) # Always succeeds.
  511. object PyString_InternFromString (char *)
  512. # XXX: Pyrex doesn't support pointer to a python object?
  513. #void PyString_InternImmortal (object*)
  514. # XXX: Pyrex doesn't support pointer to a python object?
  515. #void PyString_InternInPlace (object*)
  516. object PyString_Repr (object, int)
  517. Py_ssize_t PyString_Size (object) except -1
  518. # Disgusting hack to access internal object values.
  519. ctypedef struct PyStringObject:
  520. int ob_refcnt
  521. PyTypeObject * ob_type
  522. int ob_size
  523. long ob_shash
  524. int ob_sstate
  525. char * ob_sval
  526. ###############################################################################################
  527. # tuple
  528. ###############################################################################################
  529. PyTypeObject PyTuple_Type
  530. # See PyString_Resize note about resizing.
  531. #int _PyTuple_Resize (object*, Py_ssize_t) except -1
  532. int PyTuple_Check (object) # Always succeeds.
  533. int PyTuple_CheckExact (object) # Always succeeds.
  534. Py_ssize_t PyTuple_GET_SIZE (object) # Always succeeds.
  535. object PyTuple_GetSlice (object, Py_ssize_t, Py_ssize_t)
  536. object PyTuple_New (Py_ssize_t)
  537. object PyTuple_Pack (Py_ssize_t, ...)
  538. Py_ssize_t PyTuple_Size (object) except -1
  539. ###############################################################################################
  540. # Dangerous things!
  541. # Do not use these unless you really, really know what you are doing.
  542. ###############################################################################################
  543. void Py_INCREF (object)
  544. void Py_XINCREF (object)
  545. void Py_DECREF (object)
  546. void Py_XDECREF (object)
  547. void Py_CLEAR (object)
  548. # XXX: Stolen reference.
  549. void PyTuple_SET_ITEM (object, Py_ssize_t, value)
  550. # XXX: Borrowed reference.
  551. object PyTuple_GET_ITEM (object, Py_ssize_t)
  552. # XXX: Borrowed reference.
  553. object PyTuple_GetItem (object, Py_ssize_t)
  554. # XXX: Stolen reference.
  555. int PyTuple_SetItem (object, Py_ssize_t, object) except -1
  556. # XXX: Steals reference.
  557. int PyList_SetItem (object, Py_ssize_t, object) except -1
  558. # XXX: Borrowed reference
  559. object PyList_GetItem (object, Py_ssize_t)
  560. # XXX: Borrowed reference, no NULL on error.
  561. object PyList_GET_ITEM (object, Py_ssize_t)
  562. # XXX: Stolen reference.
  563. void PyList_SET_ITEM (object, Py_ssize_t, object)
  564. # XXX: Borrowed reference.
  565. object PySequence_Fast_GET_ITEM (object, Py_ssize_t)
  566. # First parameter _must_ be a PyStringObject.
  567. object _PyString_Join (object, object)