Author: Manuel Jacob Branch: remove-dict-smm Changeset: r64101:07dc888e282f Date: 2013-05-14 21:14 +0200 http://bitbucket.org/pypy/pypy/changeset/07dc888e282f/
Log: Remove dict view eq multi-methods. All dict multi-methods removedhg diff 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 @@ -1251,6 +1251,23 @@ return space.wrap("%s(%s)" % (space.type(self).getname(space), space.str_w(w_repr))) + + def descr_eq(self, space, w_otherview): + if not space.eq_w(space.len(self), space.len(w_otherview)): + return space.w_False + + w_iter = space.iter(self) + while True: + try: + w_item = space.next(w_iter) + except OperationError, e: + if not e.match(space, space.w_StopIteration): + raise + break + if not space.is_true(space.contains(w_otherview, w_item)): + return space.w_False + return space.w_True + def descr_len(self, space): return space.len(self.w_dict) @@ -1287,6 +1304,7 @@ W_DictViewItemsObject.typedef = StdTypeDef( "dict_items", __repr__ = gateway.interp2app(W_DictViewItemsObject.descr_repr), + __eq__ = gateway.interp2app(W_DictViewItemsObject.descr_eq), __len__ = gateway.interp2app(W_DictViewItemsObject.descr_len), __iter__ = gateway.interp2app(W_DictViewItemsObject.descr_iter), __and__ = gateway.interp2app(W_DictViewItemsObject.descr_and), @@ -1297,6 +1315,7 @@ W_DictViewKeysObject.typedef = StdTypeDef( "dict_keys", __repr__ = gateway.interp2app(W_DictViewKeysObject.descr_repr), + __eq__ = gateway.interp2app(W_DictViewKeysObject.descr_eq), __len__ = gateway.interp2app(W_DictViewKeysObject.descr_len), __iter__ = gateway.interp2app(W_DictViewKeysObject.descr_iter), __and__ = gateway.interp2app(W_DictViewKeysObject.descr_and), @@ -1307,41 +1326,10 @@ W_DictViewValuesObject.typedef = StdTypeDef( "dict_values", __repr__ = gateway.interp2app(W_DictViewValuesObject.descr_repr), + __eq__ = gateway.interp2app(W_DictViewValuesObject.descr_eq), __len__ = gateway.interp2app(W_DictViewValuesObject.descr_len), __iter__ = gateway.interp2app(W_DictViewValuesObject.descr_iter), __and__ = gateway.interp2app(W_DictViewValuesObject.descr_and), __or__ = gateway.interp2app(W_DictViewValuesObject.descr_or), __xor__ = gateway.interp2app(W_DictViewValuesObject.descr_xor) ) - -def all_contained_in(space, w_dictview, w_otherview): - w_iter = space.iter(w_dictview) - - while True: - try: - w_item = space.next(w_iter) - except OperationError, e: - if not e.match(space, space.w_StopIteration): - raise - break - if not space.is_true(space.contains(w_otherview, w_item)): - return space.w_False - - return space.w_True - -def eq__DictViewKeys_DictViewKeys(space, w_dictview, w_otherview): - if space.eq_w(space.len(w_dictview), space.len(w_otherview)): - return all_contained_in(space, w_dictview, w_otherview) - return space.w_False -eq__DictViewKeys_settypedef = eq__DictViewKeys_DictViewKeys -eq__DictViewKeys_frozensettypedef = eq__DictViewKeys_DictViewKeys - -eq__DictViewKeys_DictViewItems = eq__DictViewKeys_DictViewKeys -eq__DictViewItems_DictViewItems = eq__DictViewKeys_DictViewKeys -eq__DictViewItems_settypedef = eq__DictViewItems_DictViewItems -eq__DictViewItems_frozensettypedef = eq__DictViewItems_DictViewItems - -# ____________________________________________________________ - - -register_all(vars(), globals()) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit