[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