summaryrefslogtreecommitdiff
path: root/numpy/doc/cython/Python.pxi
diff options
context:
space:
mode:
authorFernando Perez <fperez@fperez.org>2008-04-09 01:54:54 +0000
committerFernando Perez <fperez@fperez.org>2008-04-09 01:54:54 +0000
commit5e31a42c49f8fee87388cd33baf891d3f0010157 (patch)
tree9af1947d6941c95e342723678445aa9912f5184d /numpy/doc/cython/Python.pxi
parent0b0a389d1dfb6d76e053988d87f6434c81dd5ba5 (diff)
downloadnumpy-5e31a42c49f8fee87388cd33baf891d3f0010157.tar.gz
Add up to date (and slightly cleaned up) support for Cython after porting
the existing Pyrex one, put in deprecation markers in the old Pyrex dir. The pyrex dir can be removed in a subsequent commit.
Diffstat (limited to 'numpy/doc/cython/Python.pxi')
-rw-r--r--numpy/doc/cython/Python.pxi62
1 files changed, 62 insertions, 0 deletions
diff --git a/numpy/doc/cython/Python.pxi b/numpy/doc/cython/Python.pxi
new file mode 100644
index 000000000..46d2fd1a7
--- /dev/null
+++ b/numpy/doc/cython/Python.pxi
@@ -0,0 +1,62 @@
+# :Author: Robert Kern
+# :Copyright: 2004, Enthought, Inc.
+# :License: BSD Style
+
+
+cdef extern from "Python.h":
+ # Not part of the Python API, but we might as well define it here.
+ # Note that the exact type doesn't actually matter for Pyrex.
+ ctypedef int size_t
+
+ # Some type declarations we need
+ ctypedef int Py_intptr_t
+
+
+ # String API
+ char* PyString_AsString(object string)
+ char* PyString_AS_STRING(object string)
+ object PyString_FromString(char* c_string)
+ object PyString_FromStringAndSize(char* c_string, int length)
+ object PyString_InternFromString(char *v)
+
+ # Float API
+ object PyFloat_FromDouble(double v)
+ double PyFloat_AsDouble(object ob)
+ long PyInt_AsLong(object ob)
+
+
+ # Memory API
+ void* PyMem_Malloc(size_t n)
+ void* PyMem_Realloc(void* buf, size_t n)
+ void PyMem_Free(void* buf)
+
+ void Py_DECREF(object obj)
+ void Py_XDECREF(object obj)
+ void Py_INCREF(object obj)
+ void Py_XINCREF(object obj)
+
+ # CObject API
+ ctypedef void (*destructor1)(void* cobj)
+ ctypedef void (*destructor2)(void* cobj, void* desc)
+ int PyCObject_Check(object p)
+ object PyCObject_FromVoidPtr(void* cobj, destructor1 destr)
+ object PyCObject_FromVoidPtrAndDesc(void* cobj, void* desc,
+ destructor2 destr)
+ void* PyCObject_AsVoidPtr(object self)
+ void* PyCObject_GetDesc(object self)
+ int PyCObject_SetVoidPtr(object self, void* cobj)
+
+ # TypeCheck API
+ int PyFloat_Check(object obj)
+ int PyInt_Check(object obj)
+
+ # Error API
+ int PyErr_Occurred()
+ void PyErr_Clear()
+ int PyErr_CheckSignals()
+
+cdef extern from "string.h":
+ void *memcpy(void *s1, void *s2, int n)
+
+cdef extern from "math.h":
+ double fabs(double x)