Author: Philip Jenvey <pjen...@underboss.org> Branch: py3k Changeset: r64291:b1432cb778e6 Date: 2013-05-17 16:43 -0700 http://bitbucket.org/pypy/pypy/changeset/b1432cb778e6/
Log: merge default 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 @@ -1276,6 +1276,14 @@ def descr_len(self, space): return space.len(self.w_dict) +class SetLikeDictView(object): + _mixin_ = True + + def descr_sub(self, space, w_otherview): + w_set = space.call_function(space.w_set, self) + space.call_method(w_set, "difference_update", w_otherview) + return w_set + def descr_and(self, space, w_otherview): w_set = space.call_function(space.w_set, self) space.call_method(w_set, "intersection_update", w_otherview) @@ -1291,11 +1299,11 @@ space.call_method(w_set, "symmetric_difference_update", w_otherview) return w_set -class W_DictViewItemsObject(W_DictViewObject): +class W_DictViewItemsObject(W_DictViewObject, SetLikeDictView): def descr_iter(self, space): return W_DictMultiIterItemsObject(space, self.w_dict.iteritems()) -class W_DictViewKeysObject(W_DictViewObject): +class W_DictViewKeysObject(W_DictViewObject, SetLikeDictView): def descr_iter(self, space): return W_DictMultiIterKeysObject(space, self.w_dict.iterkeys()) @@ -1309,6 +1317,7 @@ __eq__ = interp2app(W_DictViewItemsObject.descr_eq), __len__ = interp2app(W_DictViewItemsObject.descr_len), __iter__ = interp2app(W_DictViewItemsObject.descr_iter), + __sub__ = interp2app(W_DictViewItemsObject.descr_sub), __and__ = interp2app(W_DictViewItemsObject.descr_and), __or__ = interp2app(W_DictViewItemsObject.descr_or), __xor__ = interp2app(W_DictViewItemsObject.descr_xor) @@ -1320,6 +1329,7 @@ __eq__ = interp2app(W_DictViewKeysObject.descr_eq), __len__ = interp2app(W_DictViewKeysObject.descr_len), __iter__ = interp2app(W_DictViewKeysObject.descr_iter), + __sub__ = interp2app(W_DictViewKeysObject.descr_sub), __and__ = interp2app(W_DictViewKeysObject.descr_and), __or__ = interp2app(W_DictViewKeysObject.descr_or), __xor__ = interp2app(W_DictViewKeysObject.descr_xor) @@ -1331,7 +1341,4 @@ __eq__ = interp2app(W_DictViewValuesObject.descr_eq), __len__ = interp2app(W_DictViewValuesObject.descr_len), __iter__ = interp2app(W_DictViewValuesObject.descr_iter), - __and__ = interp2app(W_DictViewValuesObject.descr_and), - __or__ = interp2app(W_DictViewValuesObject.descr_or), - __xor__ = interp2app(W_DictViewValuesObject.descr_xor) ) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit