[Python-checkins] cpython (2.7): teach 2to3 about 'yield from'

benjamin.peterson python-checkins at python.org
Thu Apr 10 06:25:11 CEST 2014


http://hg.python.org/cpython/rev/340a9d2f6bde
changeset:   90212:340a9d2f6bde
branch:      2.7
parent:      90208:a12f306ee0eb
user:        Benjamin Peterson <benjamin at python.org>
date:        Thu Apr 10 00:23:18 2014 -0400
summary:
  teach 2to3 about 'yield from'

files:
  Lib/lib2to3/Grammar.txt          |  3 ++-
  Lib/lib2to3/tests/test_parser.py |  7 +++++++
  Misc/NEWS                        |  2 ++
  3 files changed, 11 insertions(+), 1 deletions(-)


diff --git a/Lib/lib2to3/Grammar.txt b/Lib/lib2to3/Grammar.txt
--- a/Lib/lib2to3/Grammar.txt
+++ b/Lib/lib2to3/Grammar.txt
@@ -155,4 +155,5 @@
 # not used in grammar, but may appear in "node" passed from Parser to Compiler
 encoding_decl: NAME
 
-yield_expr: 'yield' [testlist]
+yield_expr: 'yield' [yield_arg]
+yield_arg: 'from' test | testlist
diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/lib2to3/tests/test_parser.py
--- a/Lib/lib2to3/tests/test_parser.py
+++ b/Lib/lib2to3/tests/test_parser.py
@@ -50,6 +50,13 @@
         self.validate("a @= b")
 
 
+class TestYieldFrom(GrammarTest):
+    def test_matrix_multiplication_operator(self):
+        self.validate("yield from x")
+        self.validate("(yield from x) + y")
+        self.invalid_syntax("yield from")
+
+
 class TestRaiseChanges(GrammarTest):
     def test_2x_style_1(self):
         self.validate("raise")
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -266,6 +266,8 @@
 Tools/Demos
 -----------
 
+- Add support for ``yield from`` to 2to3.
+
 - Add support for the PEP 465 matrix multiplication operator to 2to3.
 
 - Issue #19936: Added executable bits or shebang lines to Python scripts which

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


More information about the Python-checkins mailing list