Author: Manuel Jacob Branch: remove-dict-smm Changeset: r64098:5c2911f4637a Date: 2013-05-14 20:56 +0200 http://bitbucket.org/pypy/pypy/changeset/5c2911f4637a/
Log: Remove dict view length 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,9 @@ def __init__(w_self, space, w_dict): w_self.w_dict = w_dict + def descr_len(self, space): + return space.len(self.w_dict) + class W_DictViewItemsObject(W_DictViewObject): def descr_iter(self, space): return W_DictMultiIterItemsObject(space, self.w_dict.iteritems()) @@ -1262,23 +1265,22 @@ W_DictViewItemsObject.typedef = StdTypeDef( "dict_items", + __len__ = gateway.interp2app(W_DictViewItemsObject.descr_len), __iter__ = gateway.interp2app(W_DictViewItemsObject.descr_iter) ) W_DictViewKeysObject.typedef = StdTypeDef( "dict_keys", + __len__ = gateway.interp2app(W_DictViewKeysObject.descr_len), __iter__ = gateway.interp2app(W_DictViewKeysObject.descr_iter) ) W_DictViewValuesObject.typedef = StdTypeDef( "dict_values", + __len__ = gateway.interp2app(W_DictViewValuesObject.descr_len), __iter__ = gateway.interp2app(W_DictViewValuesObject.descr_iter) ) -def len__DictViewKeys(space, w_dictview): - return space.len(w_dictview.w_dict) -len__DictViewItems = len__DictViewValues = len__DictViewKeys - def all_contained_in(space, w_dictview, w_otherview): w_iter = space.iter(w_dictview) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit