Author: mattip <matti.pi...@gmail.com> Branch: cpyext-ext Changeset: r81796:aced3aac84e6 Date: 2016-01-15 15:45 +0200 http://bitbucket.org/pypy/pypy/changeset/aced3aac84e6/
Log: add a TypeDef to W_MemberDesc with the corrent name diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py --- a/pypy/module/cpyext/typeobject.py +++ b/pypy/module/cpyext/typeobject.py @@ -8,7 +8,8 @@ from pypy.interpreter.baseobjspace import W_Root, DescrMismatch from pypy.interpreter.error import OperationError -from pypy.interpreter.typedef import GetSetProperty +from pypy.interpreter.typedef import (GetSetProperty, TypeDef, + interp_attrproperty, interp_attrproperty, interp2app) from pypy.module.__builtin__.abstractinst import abstract_issubclass_w from pypy.module.cpyext import structmemberdefs from pypy.module.cpyext.api import ( @@ -69,6 +70,7 @@ return space.wrap(W_GetSetPropertyEx(getset, w_type)) class W_MemberDescr(GetSetProperty): + name = 'member_descriptor' def __init__(self, member, w_type): self.member = member self.name = rffi.charp2str(member.c_name) @@ -85,6 +87,18 @@ cls=None, use_closure=True, tag="cpyext_2") +# change the typedef name +W_MemberDescr.typedef = TypeDef( + "member_descriptor", + __get__ = interp2app(GetSetProperty.descr_property_get), + __set__ = interp2app(GetSetProperty.descr_property_set), + __delete__ = interp2app(GetSetProperty.descr_property_del), + __name__ = interp_attrproperty('name', cls=GetSetProperty), + __objclass__ = GetSetProperty(GetSetProperty.descr_get_objclass), + __doc__ = interp_attrproperty('doc', cls=GetSetProperty), + ) +assert not W_MemberDescr.typedef.acceptable_as_base_class # no __new__ + def convert_getset_defs(space, dict_w, getsets, w_type): getsets = rffi.cast(rffi.CArrayPtr(PyGetSetDef), getsets) if getsets: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit