From: Stefan Behnel Date: Sat, 24 Oct 2009 13:12:23 +0000 (+0200) Subject: missing weakref .pxd file, include all python_*.pxd files in python.pxd, test their... X-Git-Tag: 0.13.beta0~2^2~119^2~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0ff8df7eb9b8ca231e8a0c609f3e3b4adaace5f6;p=cython.git missing weakref .pxd file, include all python_*.pxd files in python.pxd, test their cimport --- diff --git a/Cython/Includes/python.pxd b/Cython/Includes/python.pxd index 7346ec87..f4bafd53 100644 --- a/Cython/Includes/python.pxd +++ b/Cython/Includes/python.pxd @@ -125,7 +125,6 @@ from python_mem cimport * from python_tuple cimport * from python_list cimport * from python_object cimport * -from python_cobject cimport * from python_sequence cimport * from python_mapping cimport * from python_iterator cimport * @@ -142,4 +141,18 @@ from python_dict cimport * from python_instance cimport * from python_function cimport * from python_method cimport * +from python_weakref cimport * +from python_getargs cimport * + +# Python <= 2.x +from python_cobject cimport * + +# Python >= 2.4 from python_set cimport * + +# Python >= 2.6 +from python_buffer cimport * +from python_bytes cimport * + +# Python >= 3.0 +from python_pycapsule cimport * diff --git a/Cython/Includes/python_weakref.pxd b/Cython/Includes/python_weakref.pxd new file mode 100644 index 00000000..0611ffb3 --- /dev/null +++ b/Cython/Includes/python_weakref.pxd @@ -0,0 +1,42 @@ +from python_ref cimport PyObject + +cdef extern from "Python.h": + + bint PyWeakref_Check(object ob) + # Return true if ob is either a reference or proxy object. + + bint PyWeakref_CheckRef(object ob) + # Return true if ob is a reference object. + + bint PyWeakref_CheckProxy(ob) + # Return true if *ob* is a proxy object. + + object PyWeakref_NewRef(object ob, object callback) + # Return a weak reference object for the object ob. This will + # always return a new reference, but is not guaranteed to create a + # new object; an existing reference object may be returned. The + # second parameter, callback, can be a callable object that + # receives notification when ob is garbage collected; it should + # accept a single parameter, which will be the weak reference + # object itself. callback may also be None or NULL. If ob is not + # a weakly-referencable object, or if callback is not callable, + # None, or NULL, this will return NULL and raise TypeError. + + object PyWeakref_NewProxy(object ob, object callback) + # Return a weak reference proxy object for the object ob. This + # will always return a new reference, but is not guaranteed to + # create a new object; an existing proxy object may be returned. + # The second parameter, callback, can be a callable object that + # receives notification when ob is garbage collected; it should + # accept a single parameter, which will be the weak reference + # object itself. callback may also be None or NULL. If ob is not + # a weakly-referencable object, or if callback is not callable, + # None, or NULL, this will return NULL and raise TypeError. + + PyObject* PyWeakref_GetObject(object ref) + # Return the referenced object from a weak reference, ref. If the + # referent is no longer live, returns None. + + PyObject* PyWeakref_GET_OBJECT(object ref) + # Similar to PyWeakref_GetObject, but implemented as a macro that + # does no error checking. diff --git a/tests/compile/shipped_pxds.pyx b/tests/compile/shipped_pxds.pyx index 711484a5..7392d03c 100644 --- a/tests/compile/shipped_pxds.pyx +++ b/tests/compile/shipped_pxds.pyx @@ -1,10 +1,13 @@ cimport python_bool cimport python_buffer +cimport python_bytes +cimport python_cobject cimport python_complex cimport python_dict cimport python_exc cimport python_float cimport python_function +cimport python_getargs cimport python_instance cimport python_int cimport python_iterator @@ -16,8 +19,8 @@ cimport python_method cimport python_module cimport python_number cimport python_object -cimport python_parse cimport python +cimport python_pycapsule cimport python_ref cimport python_sequence cimport python_set @@ -26,5 +29,6 @@ cimport python_tuple cimport python_type cimport python_unicode cimport python_version +cimport python_weakref cimport stdio cimport stdlib