summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2018-01-26 20:24:24 (GMT)
committerGitHub <noreply@github.com>2018-01-26 20:24:24 (GMT)
commit43c47fe09640c579462978ec16f81295f5857cde (patch)
tree6a1524a805eb5d181acc04552bfb1a09ea736e39 /Doc
parentdba976b8a28d6e5daa66ef31a6a7c694a9193f6a (diff)
downloadcpython-43c47fe09640c579462978ec16f81295f5857cde.zip
cpython-43c47fe09640c579462978ec16f81295f5857cde.tar.gz
cpython-43c47fe09640c579462978ec16f81295f5857cde.tar.bz2
bpo-32670: Enforce PEP 479. (#5327)
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/exceptions.rst14
-rw-r--r--Doc/whatsnew/3.7.rst6
2 files changed, 15 insertions, 5 deletions
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index aa31410..42b99cc 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -367,17 +367,21 @@ The following exceptions are the exceptions that are usually raised.
raised, and the value returned by the function is used as the
:attr:`value` parameter to the constructor of the exception.
- If a generator function defined in the presence of a ``from __future__
- import generator_stop`` directive raises :exc:`StopIteration`, it will be
- converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration`
- as the new exception's cause).
+ If a generator code directly or indirectly raises :exc:`StopIteration`,
+ it is converted into a :exc:`RuntimeError` (retaining the
+ :exc:`StopIteration` as the new exception's cause).
.. versionchanged:: 3.3
Added ``value`` attribute and the ability for generator functions to
use it to return a value.
.. versionchanged:: 3.5
- Introduced the RuntimeError transformation.
+ Introduced the RuntimeError transformation via
+ ``from __future__ import generator_stop``, see :pep:`479`.
+
+ .. versionchanged:: 3.7
+ Enable :pep:`479` for all code by default: a :exc:`StopIteration`
+ error raised in a generator is transformed into a :exc:`RuntimeError`.
.. exception:: StopAsyncIteration
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index a350919..43fbd01 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -935,6 +935,12 @@ that may require changes to your code.
Changes in Python behavior
--------------------------
+* :pep:`479` is enabled for all code in Python 3.7, meaning that
+ :exc:`StopIteration` exceptions raised directly or indirectly in
+ coroutines and generators are transformed into :exc:`RuntimeError`
+ exceptions.
+ (Contributed by Yury Selivanov in :issue:`32670`.)
+
* Due to an oversight, earlier Python versions erroneously accepted the
following syntax::