[Python-checkins] cpython: PEP 479: Use the return-keyword instead of raising StopIteration inside a

raymond.hettinger python-checkins at python.org
Sun Nov 23 07:14:48 CET 2014


https://hg.python.org/cpython/rev/e8b3083bb148
changeset:   93543:e8b3083bb148
user:        Raymond Hettinger <python at rcn.com>
date:        Sat Nov 22 22:14:41 2014 -0800
summary:
  PEP 479:  Use the return-keyword instead of raising StopIteration inside a generators.

files:
  Lib/ipaddress.py                |  2 +-
  Lib/mailbox.py                  |  2 +-
  Lib/test/test_buffer.py         |  2 +-
  Lib/test/test_collections.py    |  2 +-
  Lib/test/test_itertools.py      |  2 --
  Lib/test/test_sys_setprofile.py |  1 -
  6 files changed, 4 insertions(+), 7 deletions(-)


diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py
--- a/Lib/ipaddress.py
+++ b/Lib/ipaddress.py
@@ -808,7 +808,7 @@
                 other.broadcast_address <= self.broadcast_address):
             raise ValueError('%s not contained in %s' % (other, self))
         if other == self:
-            raise StopIteration
+            return
 
         # Make sure we're comparing the network of other.
         other = other.__class__('%s/%s' % (other.network_address,
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -1949,7 +1949,7 @@
         while True:
             line = self.readline()
             if not line:
-                raise StopIteration
+                return
             yield line
 
     def tell(self):
diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py
--- a/Lib/test/test_buffer.py
+++ b/Lib/test/test_buffer.py
@@ -216,7 +216,7 @@
     for t in iter_mode(nitems, testobj):
         yield t
     if testobj != 'ndarray':
-        raise StopIteration
+        return
     yield struct_items(nitems, testobj)
 
 
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -511,7 +511,7 @@
         class NextOnly:
             def __next__(self):
                 yield 1
-                raise StopIteration
+                return
         self.assertNotIsInstance(NextOnly(), Iterator)
 
     def test_Sized(self):
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -1803,8 +1803,6 @@
             hist.append(3)
             yield 2
             hist.append(4)
-            if x:
-                raise StopIteration
 
         hist = []
         self.assertRaises(AssertionError, list, chain(gen1(), gen2(False)))
diff --git a/Lib/test/test_sys_setprofile.py b/Lib/test/test_sys_setprofile.py
--- a/Lib/test/test_sys_setprofile.py
+++ b/Lib/test/test_sys_setprofile.py
@@ -260,7 +260,6 @@
         def f():
             for i in range(2):
                 yield i
-            raise StopIteration
         def g(p):
             for i in f():
                 pass

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list