[pypy-commit] pypy kill-single-impl-multimethods: a few more dead multimethods.
alex_gaynor
noreply at buildbot.pypy.org
Mon Aug 8 01:11:46 CEST 2011
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: kill-single-impl-multimethods
Changeset: r46358:7a1464d8ef30
Date: 2011-08-07 16:13 -0700
http://bitbucket.org/pypy/pypy/changeset/7a1464d8ef30/
Log: a few more dead multimethods.
diff --git a/pypy/objspace/std/dicttype.py b/pypy/objspace/std/dicttype.py
--- a/pypy/objspace/std/dicttype.py
+++ b/pypy/objspace/std/dicttype.py
@@ -124,6 +124,30 @@
w_currently_in_repr = ec._py_repr = space.newdict()
return dictrepr(space, w_currently_in_repr, self)
+ def descr__eq__(self, space, w_other):
+ if not isinstance(w_other, W_DictMultiObject):
+ return space.w_NotImplemented
+
+ if space.is_w(self, w_other):
+ return space.w_True
+
+ if self.length() != w_other.length():
+ return space.w_False
+ iteratorimplementation = self.iter()
+ while 1:
+ w_key, w_val = iteratorimplementation.next()
+ if w_key is None:
+ break
+ w_rightval = w_other.getitem(w_key)
+ if w_rightval is None:
+ return space.w_False
+ if not space.eq_w(w_val, w_rightval):
+ return space.w_False
+ return space.w_True
+
+ def descr__ne__(self, space, w_other):
+ return space.not_(self.descr__eq__(space, w_other))
+
def descr_items(self, space):
"""D.items() -> list of D's (key, value) pairs, as 2-tuples"""
return space.newlist(self.items())
@@ -327,6 +351,12 @@
def descr__len__(self, space):
return space.len(self.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)))
+
class W_DictViewItemsObject(W_DictViewObject):
def descr__iter__(self, space):
return self.w_dict.descr_iteritems(space)
@@ -835,25 +865,6 @@
### MULTIMETHOD STUFF
-
-def eq__DictMulti_DictMulti(space, w_left, w_right):
- if space.is_w(w_left, w_right):
- return space.w_True
-
- if w_left.length() != w_right.length():
- return space.w_False
- iteratorimplementation = w_left.iter()
- while 1:
- w_key, w_val = iteratorimplementation.next()
- if w_key is None:
- break
- w_rightval = w_right.getitem(w_key)
- if w_rightval is None:
- return space.w_False
- if not space.eq_w(w_val, w_rightval):
- return space.w_False
- return space.w_True
-
def characterize(space, w_a, w_b):
""" (similar to CPython)
returns the smallest key in acontent for which b's value is different or absent and this value """
@@ -923,14 +934,6 @@
eq__DictViewItems_DictViewItems = eq__DictViewKeys_DictViewKeys
eq__DictViewItems_settypedef = 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)
@@ -974,6 +977,8 @@
__hash__ = None,
__repr__ = gateway.interp2app(W_DictMultiObject.descr__repr__),
__reversed__ = gateway.interp2app(W_DictMultiObject.descr__reversed__),
+ __eq__ = gateway.interp2app(W_DictMultiObject.descr__eq__),
+ __ne__ = gateway.interp2app(W_DictMultiObject.descr__ne__),
__len__ = gateway.interp2app(W_DictMultiObject.descr__len__),
__getitem__ = gateway.interp2app(W_DictMultiObject.descr__getitem__),
@@ -1019,17 +1024,20 @@
W_DictViewKeysObject.typedef = StdTypeDef("dict_keys",
__len__ = gateway.interp2app(W_DictViewKeysObject.descr__len__),
- __iter__ = gateway.interp2app(W_DictViewKeysObject.descr__iter__)
+ __iter__ = gateway.interp2app(W_DictViewKeysObject.descr__iter__),
+ __repr__ = gateway.interp2app(W_DictViewKeysObject.descr__repr__),
)
W_DictViewItemsObject.typedef = StdTypeDef("dict_items",
__len__ = gateway.interp2app(W_DictViewItemsObject.descr__len__),
__iter__ = gateway.interp2app(W_DictViewItemsObject.descr__iter__),
+ __repr__ = gateway.interp2app(W_DictViewItemsObject.descr__repr__),
)
W_DictViewValuesObject.typedef = StdTypeDef("dict_values",
__len__ = gateway.interp2app(W_DictViewValuesObject.descr__len__),
__iter__ = gateway.interp2app(W_DictViewValuesObject.descr__iter__),
+ __repr__ = gateway.interp2app(W_DictViewValuesObject.descr__repr__),
)
More information about the pypy-commit
mailing list