[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