summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2016-11-08 20:13:07 (GMT)
committerYury Selivanov <yury@magic.io>2016-11-08 20:13:07 (GMT)
commit2edd8a1e2cd22f8ba46e108ff213bec8c5f86459 (patch)
tree67a74827d0310416aad0ae57fbbdbbe5e3496b9f
parent1c9bd1d8ec9a022f4f222eccbddac3b4174c2ab2 (diff)
downloadcpython-2edd8a1e2cd22f8ba46e108ff213bec8c5f86459.zip
cpython-2edd8a1e2cd22f8ba46e108ff213bec8c5f86459.tar.gz
cpython-2edd8a1e2cd22f8ba46e108ff213bec8c5f86459.tar.bz2
Issue #27243: Change PendingDeprecationWarning -> DeprecationWarning.
As it was agreed in the issue, __aiter__ returning an awaitable should result in PendingDeprecationWarning in 3.5 and in DeprecationWarning in 3.6.
-rw-r--r--Lib/test/test_coroutines.py18
-rw-r--r--Misc/NEWS5
-rw-r--r--Python/ceval.c2
3 files changed, 15 insertions, 10 deletions
diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py
index 50e439a..78439a2 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -1398,7 +1398,7 @@ class CoroutineTest(unittest.TestCase):
buffer = []
async def test1():
- with self.assertWarnsRegex(PendingDeprecationWarning, "legacy"):
+ with self.assertWarnsRegex(DeprecationWarning, "legacy"):
async for i1, i2 in AsyncIter():
buffer.append(i1 + i2)
@@ -1412,7 +1412,7 @@ class CoroutineTest(unittest.TestCase):
buffer = []
async def test2():
nonlocal buffer
- with self.assertWarnsRegex(PendingDeprecationWarning, "legacy"):
+ with self.assertWarnsRegex(DeprecationWarning, "legacy"):
async for i in AsyncIter():
buffer.append(i[0])
if i[0] == 20:
@@ -1431,7 +1431,7 @@ class CoroutineTest(unittest.TestCase):
buffer = []
async def test3():
nonlocal buffer
- with self.assertWarnsRegex(PendingDeprecationWarning, "legacy"):
+ with self.assertWarnsRegex(DeprecationWarning, "legacy"):
async for i in AsyncIter():
if i[0] > 20:
continue
@@ -1514,7 +1514,7 @@ class CoroutineTest(unittest.TestCase):
return 123
async def foo():
- with self.assertWarnsRegex(PendingDeprecationWarning, "legacy"):
+ with self.assertWarnsRegex(DeprecationWarning, "legacy"):
async for i in I():
print('never going to happen')
@@ -1623,7 +1623,7 @@ class CoroutineTest(unittest.TestCase):
1/0
async def foo():
nonlocal CNT
- with self.assertWarnsRegex(PendingDeprecationWarning, "legacy"):
+ with self.assertWarnsRegex(DeprecationWarning, "legacy"):
async for i in AI():
CNT += 1
CNT += 10
@@ -1650,7 +1650,7 @@ class CoroutineTest(unittest.TestCase):
self.assertEqual(CNT, 0)
def test_for_9(self):
- # Test that PendingDeprecationWarning can safely be converted into
+ # Test that DeprecationWarning can safely be converted into
# an exception (__aiter__ should not have a chance to raise
# a ZeroDivisionError.)
class AI:
@@ -1660,13 +1660,13 @@ class CoroutineTest(unittest.TestCase):
async for i in AI():
pass
- with self.assertRaises(PendingDeprecationWarning):
+ with self.assertRaises(DeprecationWarning):
with warnings.catch_warnings():
warnings.simplefilter("error")
run_async(foo())
def test_for_10(self):
- # Test that PendingDeprecationWarning can safely be converted into
+ # Test that DeprecationWarning can safely be converted into
# an exception.
class AI:
async def __aiter__(self):
@@ -1675,7 +1675,7 @@ class CoroutineTest(unittest.TestCase):
async for i in AI():
pass
- with self.assertRaises(PendingDeprecationWarning):
+ with self.assertRaises(DeprecationWarning):
with warnings.catch_warnings():
warnings.simplefilter("error")
run_async(foo())
diff --git a/Misc/NEWS b/Misc/NEWS
index b4a0243..7a4fa3a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13,6 +13,11 @@ Core and Builtins
- Issue #28583: PyDict_SetDefault didn't combine split table when needed.
Patch by Xiang Zhang.
+- Issue #27243: Change PendingDeprecationWarning -> DeprecationWarning.
+ As it was agreed in the issue, __aiter__ returning an awaitable
+ should result in PendingDeprecationWarning in 3.5 and in
+ DeprecationWarning in 3.6.
+
Library
-------
diff --git a/Python/ceval.c b/Python/ceval.c
index 82cc9a2..0add7ec 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1911,7 +1911,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
Py_DECREF(iter);
if (PyErr_WarnFormat(
- PyExc_PendingDeprecationWarning, 1,
+ PyExc_DeprecationWarning, 1,
"'%.100s' implements legacy __aiter__ protocol; "
"__aiter__ should return an asynchronous "
"iterator, not awaitable",