2014-01-28 13:45:31 -05:00
|
|
|
USING: alien alien.c-types alien.destructors alien.libraries alien.libraries.finder
|
|
|
|
alien.syntax assocs kernel sequences system ;
|
2014-01-19 17:45:25 -05:00
|
|
|
IN: python.ffi
|
|
|
|
|
2014-07-03 21:25:22 -04:00
|
|
|
! << "python" { "3.0" "3" "2.7" "2.6" } ! Python 3 has a different api, enable someday
|
|
|
|
<< "python" { "2.7" "2.6" }
|
2014-03-04 12:39:02 -05:00
|
|
|
os windows? [ [ [ CHAR: . = not ] filter ] map ] when
|
2014-07-03 21:17:22 -04:00
|
|
|
[ "python" prepend find-library* ] map-find drop
|
2014-03-04 12:39:02 -05:00
|
|
|
cdecl add-library >>
|
2014-01-19 17:45:25 -05:00
|
|
|
|
2014-01-27 17:49:00 -05:00
|
|
|
! Functions that return borrowed references needs to be called like this:
|
|
|
|
! Py_Func dup Py_IncRef &Py_DecRef
|
|
|
|
|
2014-01-19 17:45:25 -05:00
|
|
|
LIBRARY: python
|
|
|
|
|
|
|
|
C-TYPE: PyObject
|
|
|
|
|
|
|
|
! Top-level
|
|
|
|
FUNCTION: c-string Py_GetVersion ( ) ;
|
|
|
|
FUNCTION: void Py_Initialize ( ) ;
|
|
|
|
FUNCTION: bool Py_IsInitialized ( ) ;
|
|
|
|
FUNCTION: void Py_Finalize ( ) ;
|
2014-02-03 05:28:43 -05:00
|
|
|
FUNCTION: void PySys_SetArgvEx ( int argc, c-string* argv, int updatepath ) ;
|
2014-01-19 17:45:25 -05:00
|
|
|
|
|
|
|
! Misc
|
|
|
|
FUNCTION: int PyRun_SimpleString ( c-string command ) ;
|
|
|
|
|
|
|
|
! Importing
|
|
|
|
FUNCTION: PyObject* PyImport_AddModule ( c-string name ) ;
|
|
|
|
FUNCTION: long PyImport_GetMagicNumber ( ) ;
|
|
|
|
FUNCTION: PyObject* PyImport_ImportModule ( c-string name ) ;
|
|
|
|
|
2014-01-20 13:24:22 -05:00
|
|
|
! Sys module
|
2014-01-27 15:59:59 -05:00
|
|
|
! Borrowed reference
|
2014-01-20 13:24:22 -05:00
|
|
|
FUNCTION: PyObject* PySys_GetObject ( c-string name ) ;
|
|
|
|
|
2014-01-19 17:45:25 -05:00
|
|
|
! Dicts
|
2014-01-27 15:59:59 -05:00
|
|
|
! Borrowed reference
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: PyObject* PyDict_GetItemString ( PyObject* d, c-string key ) ;
|
|
|
|
FUNCTION: PyObject* PyDict_New ( ) ;
|
|
|
|
FUNCTION: int PyDict_Size ( PyObject* d ) ;
|
|
|
|
FUNCTION: int PyDict_SetItemString ( PyObject* d,
|
|
|
|
c-string key,
|
|
|
|
PyObject* val ) ;
|
|
|
|
FUNCTION: int PyDict_SetItem ( PyObject* d, PyObject* k, PyObject* o ) ;
|
|
|
|
FUNCTION: PyObject* PyDict_Items ( PyObject *d ) ;
|
|
|
|
|
|
|
|
! Tuples
|
2014-01-27 17:49:00 -05:00
|
|
|
! Borrowed reference
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: PyObject* PyTuple_GetItem ( PyObject* t, int pos ) ;
|
|
|
|
FUNCTION: PyObject* PyTuple_New ( int len ) ;
|
2014-01-27 15:59:59 -05:00
|
|
|
! Steals the reference
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: int PyTuple_SetItem ( PyObject* t, int pos, PyObject* o ) ;
|
|
|
|
FUNCTION: int PyTuple_Size ( PyObject* t ) ;
|
|
|
|
|
2014-01-27 17:49:00 -05:00
|
|
|
! Lists
|
|
|
|
! Borrowed reference
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: PyObject* PyList_GetItem ( PyObject* l, int pos ) ;
|
2014-01-30 11:24:58 -05:00
|
|
|
! New reference
|
|
|
|
FUNCTION: PyObject* PyList_New ( int len ) ;
|
|
|
|
FUNCTION: int PyList_Size ( PyObject* l ) ;
|
|
|
|
! Steals the reference
|
|
|
|
FUNCTION: int PyList_SetItem ( PyObject* l, int pos, PyObject* o ) ;
|
2014-01-19 17:45:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
! Modules
|
|
|
|
FUNCTION: c-string PyModule_GetName ( PyObject* module ) ;
|
|
|
|
FUNCTION: PyObject* PyModule_GetDict ( PyObject* module ) ;
|
|
|
|
|
2014-01-28 13:19:57 -05:00
|
|
|
! Callables
|
|
|
|
FUNCTION: int PyCallable_Check ( PyObject* obj ) ;
|
|
|
|
|
2014-01-19 17:45:25 -05:00
|
|
|
! Objects
|
|
|
|
FUNCTION: PyObject* PyObject_CallObject ( PyObject* callable,
|
|
|
|
PyObject* args ) ;
|
|
|
|
FUNCTION: PyObject* PyObject_Call ( PyObject* callable,
|
|
|
|
PyObject* args,
|
|
|
|
PyObject* kw ) ;
|
2014-01-30 09:06:30 -05:00
|
|
|
! New reference
|
|
|
|
FUNCTION: PyObject* PyObject_GetAttrString ( PyObject* o,
|
2014-01-19 17:45:25 -05:00
|
|
|
c-string attr_name ) ;
|
2014-01-30 09:06:30 -05:00
|
|
|
FUNCTION: int PyObject_SetAttrString ( PyObject* o,
|
|
|
|
c-string attr_name,
|
|
|
|
PyObject *v ) ;
|
|
|
|
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: PyObject* PyObject_Str ( PyObject* o ) ;
|
2014-01-27 17:49:00 -05:00
|
|
|
FUNCTION: int PyObject_IsTrue ( PyObject* o ) ;
|
2014-01-19 17:45:25 -05:00
|
|
|
|
|
|
|
! Strings
|
2014-01-20 13:24:22 -05:00
|
|
|
FUNCTION: c-string PyString_AsString ( PyObject* string ) ;
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: PyObject* PyString_FromString ( c-string v ) ;
|
|
|
|
|
|
|
|
! Unicode
|
|
|
|
FUNCTION: PyObject* PyUnicode_DecodeUTF8 ( c-string s,
|
|
|
|
int size,
|
|
|
|
void* errors ) ;
|
|
|
|
FUNCTION: PyObject* PyUnicodeUCS4_FromString ( c-string s ) ;
|
2014-01-20 12:41:55 -05:00
|
|
|
FUNCTION: PyObject* PyUnicodeUCS2_FromString ( c-string s ) ;
|
|
|
|
FUNCTION: PyObject* PyUnicodeUCS2_AsUTF8String ( PyObject* unicode ) ;
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: PyObject* PyUnicodeUCS4_AsUTF8String ( PyObject* unicode ) ;
|
|
|
|
|
|
|
|
! Ints
|
|
|
|
FUNCTION: long PyInt_AsLong ( PyObject* io ) ;
|
|
|
|
|
|
|
|
! Longs
|
|
|
|
FUNCTION: PyObject* PyLong_FromLong ( long v ) ;
|
|
|
|
FUNCTION: long PyLong_AsLong ( PyObject* o ) ;
|
|
|
|
|
|
|
|
! Floats
|
|
|
|
FUNCTION: PyObject* PyFloat_FromDouble ( double d ) ;
|
|
|
|
|
|
|
|
! Reference counting
|
|
|
|
FUNCTION: void Py_IncRef ( PyObject* o ) ;
|
|
|
|
FUNCTION: void Py_DecRef ( PyObject* o ) ;
|
|
|
|
DESTRUCTOR: Py_DecRef
|
|
|
|
|
|
|
|
! Reflection
|
|
|
|
FUNCTION: c-string PyEval_GetFuncName ( PyObject* func ) ;
|
|
|
|
|
|
|
|
! Errors
|
2014-01-27 15:59:59 -05:00
|
|
|
FUNCTION: void PyErr_Clear ( ) ;
|
2014-01-19 17:45:25 -05:00
|
|
|
FUNCTION: void PyErr_Print ( ) ;
|
|
|
|
FUNCTION: void PyErr_Fetch ( PyObject** ptype,
|
|
|
|
PyObject** pvalue,
|
|
|
|
PyObject** *ptraceback ) ;
|