Author: Philip Jenvey <pjen...@underboss.org> Branch: Changeset: r84560:240555277819 Date: 2016-05-21 15:28 -0700 http://bitbucket.org/pypy/pypy/changeset/240555277819/
Log: minor cleanup diff --git a/pypy/module/__builtin__/__init__.py b/pypy/module/__builtin__/__init__.py --- a/pypy/module/__builtin__/__init__.py +++ b/pypy/module/__builtin__/__init__.py @@ -86,8 +86,8 @@ 'max' : 'functional.max', 'reversed' : 'functional.reversed', 'super' : 'descriptor.W_Super', - 'staticmethod' : 'descriptor.StaticMethod', - 'classmethod' : 'descriptor.ClassMethod', + 'staticmethod' : 'pypy.interpreter.function.StaticMethod', + 'classmethod' : 'pypy.interpreter.function.ClassMethod', 'property' : 'descriptor.W_Property', 'globals' : 'interp_inspect.globals', diff --git a/pypy/module/__builtin__/descriptor.py b/pypy/module/__builtin__/descriptor.py --- a/pypy/module/__builtin__/descriptor.py +++ b/pypy/module/__builtin__/descriptor.py @@ -1,31 +1,29 @@ from pypy.interpreter.baseobjspace import W_Root from pypy.interpreter.error import OperationError, oefmt -from pypy.interpreter.function import StaticMethod, ClassMethod -from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault -from pypy.interpreter.typedef import (TypeDef, interp_attrproperty_w, - generic_new_descr) +from pypy.interpreter.gateway import WrappedDefault, interp2app, unwrap_spec +from pypy.interpreter.typedef import ( + TypeDef, generic_new_descr, interp_attrproperty_w) from pypy.objspace.descroperation import object_getattribute class W_Super(W_Root): + def __init__(self, space, w_starttype, w_objtype, w_self): self.w_starttype = w_starttype self.w_objtype = w_objtype self.w_self = w_self def get(self, space, w_obj, w_type=None): - w = space.wrap if self.w_self is None or space.is_w(w_obj, space.w_None): - return w(self) + return self else: # if type(self) is W_Super: # XXX write a fast path for this common case - w_selftype = space.type(w(self)) + w_selftype = space.type(self) return space.call_function(w_selftype, self.w_starttype, w_obj) - @unwrap_spec(name=str) - def getattribute(self, space, name): - w = space.wrap + def getattribute(self, space, w_name): + name = space.str_w(w_name) # only use a special logic for bound super objects and not for # getting the __class__ of the super object itself. if self.w_objtype is not None and name != '__class__': @@ -45,8 +43,7 @@ return space.get_and_call_function(w_get, w_value, w_obj, self.w_objtype) # fallback to object.__getattribute__() - return space.call_function(object_getattribute(space), - w(self), w(name)) + return space.call_function(object_getattribute(space), self, w_name) def descr_new_super(space, w_subtype, w_starttype, w_obj_or_type=None): if space.is_none(w_obj_or_type): @@ -54,8 +51,8 @@ w_obj_or_type = space.w_None else: w_objtype = space.type(w_obj_or_type) - if space.is_true(space.issubtype(w_objtype, space.w_type)) and \ - space.is_true(space.issubtype(w_obj_or_type, w_starttype)): + if (space.is_true(space.issubtype(w_objtype, space.w_type)) and + space.is_true(space.issubtype(w_obj_or_type, w_starttype))): w_type = w_obj_or_type # special case for class methods elif space.is_true(space.issubtype(w_objtype, w_starttype)): w_type = w_objtype # normal case @@ -82,7 +79,8 @@ __thisclass__ = interp_attrproperty_w("w_starttype", W_Super), __getattribute__ = interp2app(W_Super.getattribute), __get__ = interp2app(W_Super.get), - __doc__ = """super(type) -> unbound super object + __doc__ = """\ +super(type) -> unbound super object super(type, obj) -> bound super object; requires isinstance(obj, type) super(type, type2) -> bound super object; requires issubclass(type2, type) @@ -100,10 +98,10 @@ def __init__(self, space): pass - @unwrap_spec(w_fget = WrappedDefault(None), - w_fset = WrappedDefault(None), - w_fdel = WrappedDefault(None), - w_doc = WrappedDefault(None)) + @unwrap_spec(w_fget=WrappedDefault(None), + w_fset=WrappedDefault(None), + w_fdel=WrappedDefault(None), + w_doc=WrappedDefault(None)) def init(self, space, w_fget=None, w_fset=None, w_fdel=None, w_doc=None): self.w_fget = w_fget self.w_fset = w_fset @@ -113,18 +111,17 @@ # our __doc__ comes from the getter if we don't have an explicit one if (space.is_w(self.w_doc, space.w_None) and not space.is_w(self.w_fget, space.w_None)): - w_getter_doc = space.findattr(self.w_fget, space.wrap("__doc__")) + w_getter_doc = space.findattr(self.w_fget, space.wrap('__doc__')) if w_getter_doc is not None: if type(self) is W_Property: self.w_doc = w_getter_doc else: - space.setattr(space.wrap(self), space.wrap("__doc__"), - w_getter_doc) + space.setattr(self, space.wrap('__doc__'), w_getter_doc) self.getter_doc = True def get(self, space, w_obj, w_objtype=None): if space.is_w(w_obj, space.w_None): - return space.wrap(self) + return self if space.is_w(self.w_fget, space.w_None): raise oefmt(space.w_AttributeError, "unreadable attribute") return space.call_function(self.w_fget, w_obj) @@ -162,11 +159,13 @@ else: w_doc = self.w_doc w_type = self.getclass(space) - return space.call_function(w_type, w_getter, w_setter, w_deleter, w_doc) + return space.call_function(w_type, w_getter, w_setter, w_deleter, + w_doc) W_Property.typedef = TypeDef( 'property', - __doc__ = '''property(fget=None, fset=None, fdel=None, doc=None) -> property attribute + __doc__ = '''\ +property(fget=None, fset=None, fdel=None, doc=None) -> property attribute fget is a function to be used for getting an attribute value, and likewise fset is a function for setting, and fdel a function for deleting, an _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit