missing weakref .pxd file, include all python_*.pxd files in python.pxd, test their...
authorStefan Behnel <scoder@users.berlios.de>
Sat, 24 Oct 2009 13:12:23 +0000 (15:12 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Sat, 24 Oct 2009 13:12:23 +0000 (15:12 +0200)
Cython/Includes/python.pxd
Cython/Includes/python_weakref.pxd [new file with mode: 0644]
tests/compile/shipped_pxds.pyx

index 7346ec87805aea96b6b668d682bf8388bbd0b58a..f4bafd53287ae28115ba089b576d934aa1505302 100644 (file)
@@ -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 (file)
index 0000000..0611ffb
--- /dev/null
@@ -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.
index 711484a5619f00191bbf2e4938e7b4c9c0f5240d..7392d03c1e2f22f2b0efe1ba530d68010d203a96 100644 (file)
@@ -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