[pypy-commit] pypy remove-dict-smm: Remove dict view repr multi-methods.
Manuel Jacob
noreply at buildbot.pypy.org
Tue May 14 21:24:32 CEST 2013
Author: Manuel Jacob
Branch: remove-dict-smm
Changeset: r64099:3d3b181723ff
Date: 2013-05-14 20:59 +0200
http://bitbucket.org/pypy/pypy/changeset/3d3b181723ff/
Log: Remove dict view repr multi-methods.
diff --git a/pypy/objspace/std/dictmultiobject.py b/pypy/objspace/std/dictmultiobject.py
--- a/pypy/objspace/std/dictmultiobject.py
+++ b/pypy/objspace/std/dictmultiobject.py
@@ -1245,6 +1245,12 @@
def __init__(w_self, space, w_dict):
w_self.w_dict = w_dict
+ def descr_repr(self, space):
+ w_seq = space.call_function(space.w_list, self)
+ w_repr = space.repr(w_seq)
+ return space.wrap("%s(%s)" % (space.type(self).getname(space),
+ space.str_w(w_repr)))
+
def descr_len(self, space):
return space.len(self.w_dict)
@@ -1265,18 +1271,21 @@
W_DictViewItemsObject.typedef = StdTypeDef(
"dict_items",
+ __repr__ = gateway.interp2app(W_DictViewItemsObject.descr_repr),
__len__ = gateway.interp2app(W_DictViewItemsObject.descr_len),
__iter__ = gateway.interp2app(W_DictViewItemsObject.descr_iter)
)
W_DictViewKeysObject.typedef = StdTypeDef(
"dict_keys",
+ __repr__ = gateway.interp2app(W_DictViewKeysObject.descr_repr),
__len__ = gateway.interp2app(W_DictViewKeysObject.descr_len),
__iter__ = gateway.interp2app(W_DictViewKeysObject.descr_iter)
)
W_DictViewValuesObject.typedef = StdTypeDef(
"dict_values",
+ __repr__ = gateway.interp2app(W_DictViewValuesObject.descr_repr),
__len__ = gateway.interp2app(W_DictViewValuesObject.descr_len),
__iter__ = gateway.interp2app(W_DictViewValuesObject.descr_iter)
)
@@ -1308,14 +1317,6 @@
eq__DictViewItems_settypedef = eq__DictViewItems_DictViewItems
eq__DictViewItems_frozensettypedef = eq__DictViewItems_DictViewItems
-def repr__DictViewKeys(space, w_dictview):
- w_seq = space.call_function(space.w_list, w_dictview)
- w_repr = space.repr(w_seq)
- return space.wrap("%s(%s)" % (space.type(w_dictview).getname(space),
- space.str_w(w_repr)))
-repr__DictViewItems = repr__DictViewKeys
-repr__DictViewValues = repr__DictViewKeys
-
def and__DictViewKeys_DictViewKeys(space, w_dictview, w_otherview):
w_set = space.call_function(space.w_set, w_dictview)
space.call_method(w_set, "intersection_update", w_otherview)
More information about the pypy-commit
mailing list