[pypy-svn] r73366 - pypy/branch/cpython-extension/pypy/module/cpyext

xoraxax at codespeak.net xoraxax at codespeak.net
Sun Apr 4 19:20:11 CEST 2010


Author: xoraxax
Date: Sun Apr  4 19:20:10 2010
New Revision: 73366

Modified:
   pypy/branch/cpython-extension/pypy/module/cpyext/object.py
Log:
Add various object methods.

Modified: pypy/branch/cpython-extension/pypy/module/cpyext/object.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/object.py	(original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/object.py	Sun Apr  4 19:20:10 2010
@@ -1,5 +1,6 @@
 from pypy.rpython.lltypesystem import rffi, lltype
-from pypy.module.cpyext.api import cpython_api, generic_cpy_call, CANNOT_FAIL
+from pypy.module.cpyext.api import cpython_api, generic_cpy_call, CANNOT_FAIL,\
+        Py_ssize_t
 from pypy.module.cpyext.pyobject import PyObject, make_ref, from_ref
 from pypy.module.cpyext.pyobject import Py_IncRef, Py_DecRef
 from pypy.module.cpyext.state import State
@@ -42,3 +43,18 @@
 def PyObject_SetAttr(space, w_obj, w_name, w_value):
     operation.setattr(space, w_obj, w_name, w_value)
     return 0
+
+ at cpython_api([PyObject], lltype.Void)
+def PyObject_ClearWeakRefs(space, w_object):
+    w_object.clear_all_weakrefs()
+
+ at cpython_api([PyObject], Py_ssize_t, error=-1)
+def PyObject_Size(space, w_obj):
+    return space.len(w_obj)
+
+ at cpython_api([PyObject], rffi.INT_real, error=CANNOT_FAIL)
+def PyCallable_Check(space, w_obj):
+    """Determine if the object o is callable.  Return 1 if the object is callable
+    and 0 otherwise.  This function always succeeds."""
+    return int(space.is_true(space.callable(w_obj)))
+



More information about the Pypy-commit mailing list