Author: Philip Jenvey <[email protected]>
Branch: py3k
Changeset: r64294:206e3e4d5b47
Date: 2013-05-18 14:32 -0700
http://bitbucket.org/pypy/pypy/changeset/206e3e4d5b47/

Log:    kill py2's dict iter methods, and dicts are now unorderable

diff --git a/lib_pypy/_ctypes/pointer.py b/lib_pypy/_ctypes/pointer.py
--- a/lib_pypy/_ctypes/pointer.py
+++ b/lib_pypy/_ctypes/pointer.py
@@ -28,7 +28,7 @@
         # XXX check if typedict['_type_'] is any sane
         # XXX remember about paramfunc
         obj = type.__new__(self, name, cls, typedict)
-        for k, v in d.iteritems():
+        for k, v in d.items():
             setattr(obj, k, v)
         if '_type_' in typedict:
             self.set_type(obj, typedict['_type_'])
diff --git a/lib_pypy/_functools.py b/lib_pypy/_functools.py
--- a/lib_pypy/_functools.py
+++ b/lib_pypy/_functools.py
@@ -60,7 +60,7 @@
         return "{}({})".format(name, ', '.join(tmp))
 
     def __reduce__(self):
-        d = dict((k, v) for k, v in self.__dict__.iteritems() if k not in
+        d = dict((k, v) for k, v in self.__dict__.items() if k not in
                 ('func', 'args', 'keywords'))
         if len(d) == 0:
             d = None
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
@@ -224,18 +224,6 @@
         """D.values() -> an object providing a view on D's values"""
         return W_DictViewValuesObject(space, self)
 
-    def descr_iteritems(self, space):
-        """D.iteritems() -> an iterator over the (key, value) items of D"""
-        return W_DictMultiIterItemsObject(space, self.iteritems())
-
-    def descr_iterkeys(self, space):
-        """D.iterkeys() -> an iterator over the keys of D"""
-        return W_DictMultiIterKeysObject(space, self.iterkeys())
-
-    def descr_itervalues(self, space):
-        """D.itervalues() -> an iterator over the values of D"""
-        return W_DictMultiIterValuesObject(space, self.itervalues())
-
     def descr_clear(self, space):
         """D.clear() -> None.  Remove all items from D."""
         self.clear()
@@ -369,10 +357,6 @@
     items = interp2app(W_DictMultiObject.descr_items),
     keys = interp2app(W_DictMultiObject.descr_keys),
     values = interp2app(W_DictMultiObject.descr_values),
-    # XXX:
-    iteritems = interp2app(W_DictMultiObject.descr_iteritems),
-    iterkeys = interp2app(W_DictMultiObject.descr_iterkeys),
-    itervalues = interp2app(W_DictMultiObject.descr_itervalues),
     clear = interp2app(W_DictMultiObject.descr_clear),
     get = interp2app(W_DictMultiObject.descr_get),
     pop = interp2app(W_DictMultiObject.descr_pop),
@@ -1144,21 +1128,21 @@
         raise OperationError(space.w_StopIteration, space.w_None)
 
 W_DictMultiIterItemsObject.typedef = StdTypeDef(
-    "dict_iteritems",
+    "dict_itemiterator",
     __iter__ = interp2app(W_DictMultiIterItemsObject.descr_iter),
     __next__ = interp2app(W_DictMultiIterItemsObject.descr_next),
     __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint)
     )
 
 W_DictMultiIterKeysObject.typedef = StdTypeDef(
-    "dict_iterkeys",
+    "dict_keyiterator",
     __iter__ = interp2app(W_DictMultiIterKeysObject.descr_iter),
     __next__ = interp2app(W_DictMultiIterKeysObject.descr_next),
     __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint)
     )
 
 W_DictMultiIterValuesObject.typedef = StdTypeDef(
-    "dict_itervalues",
+    "dict_valueiterator",
     __iter__ = interp2app(W_DictMultiIterValuesObject.descr_iter),
     __next__ = interp2app(W_DictMultiIterValuesObject.descr_next),
     __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint)
diff --git a/pypy/objspace/std/test/test_dictmultiobject.py 
b/pypy/objspace/std/test/test_dictmultiobject.py
--- a/pypy/objspace/std/test/test_dictmultiobject.py
+++ b/pypy/objspace/std/test/test_dictmultiobject.py
@@ -238,7 +238,7 @@
     def test_iteritems(self):
         d = {1: 2, 3: 4}
         dd = d.copy()
-        for k, v in d.iteritems():
+        for k, v in d.items():
             assert v == dd[k]
             del dd[k]
         assert not dd
@@ -246,14 +246,14 @@
     def test_iterkeys(self):
         d = {1: 2, 3: 4}
         dd = d.copy()
-        for k in d.iterkeys():
+        for k in d.keys():
             del dd[k]
         assert not dd
 
     def test_itervalues(self):
         d = {1: 2, 3: 4}
         values = []
-        for k in d.itervalues():
+        for k in d.values():
             values.append(k)
         assert values == list(d.values())
 
@@ -397,24 +397,6 @@
             f = getattr(operator, op)
             raises(TypeError, f, d1, d2)
 
-    def test_other_rich_cmp(self):
-        d1 = {1: 2, 3: 4}
-        d2 = {1: 2, 3: 4}
-        d3 = {1: 2, 3: 5}
-        d4 = {1: 2}
-
-        assert d1 <= d2
-        assert d1 <= d3
-        assert not d1 <= d4
-
-        assert not d1 > d2
-        assert not d1 > d3
-        assert d1 > d4
-
-        assert d1 >= d2
-        assert not d1 >= d3
-        assert d1 >= d4
-
     def test_str_repr(self):
         assert '{}' == str({})
         assert '{1: 2}' == str({1: 2})
@@ -613,10 +595,6 @@
     def test_bytes_keys(self):
         assert isinstance(list({b'a': 1})[0], bytes)
 
-
-    def test_cmp_with_noncmp(self):
-        assert not {} > object()
-
 class AppTest_DictMultiObject(AppTest_DictObject):
 
     def test_emptydict_unhashable(self):
@@ -997,14 +975,14 @@
 
     def test_iter_dict_length_change(self):
         d = {1: 2, 3: 4, 5: 6}
-        it = d.iteritems()
+        it = iter(d.items())
         d[7] = 8
         # 'd' is now length 4
-        raises(RuntimeError, it.__next__)
+        raises(RuntimeError, next, it)
 
     def test_iter_dict_strategy_only_change_1(self):
         d = {1: 2, 3: 4, 5: 6}
-        it = d.iteritems()
+        it = d.items()
         class Foo(object):
             def __eq__(self, other):
                 return False
@@ -1016,7 +994,7 @@
 
     def test_iter_dict_strategy_only_change_2(self):
         d = {1: 2, 3: 4, 5: 6}
-        it = d.iteritems()
+        it = d.items()
         d['foo'] = 'bar'
         del d[1]
         # on default the strategy changes and thus we get the RuntimeError
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to