summaryrefslogtreecommitdiff
path: root/as_string.py
diff options
context:
space:
mode:
Diffstat (limited to 'as_string.py')
-rw-r--r--as_string.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/as_string.py b/as_string.py
index 1863b937..ace1c4e3 100644
--- a/as_string.py
+++ b/as_string.py
@@ -429,11 +429,7 @@ class AsStringVisitor(object):
def visit_yield(self, node):
"""yield an ast.Yield node as string"""
yi_val = node.value and (" " + node.value.accept(self)) or ""
- if node.yield_from:
- yield_ = 'yield from'
- else:
- yield_ = 'yield'
- expr = yield_ + yi_val
+ expr = 'yield' + yi_val
if node.parent.is_statement:
return expr
else:
@@ -471,6 +467,15 @@ class AsStringVisitor3k(AsStringVisitor):
"""return Starred node as string"""
return "*" + node.value.accept(self)
+ def visit_yieldfrom(self, node):
+ """ Return an astroid.YieldFrom node as string. """
+ yi_val = node.value and (" " + node.value.accept(self)) or ""
+ expr = 'yield from' + yi_val
+ if node.parent.is_statement:
+ return expr
+ else:
+ return "(%s)" % (expr,)
+
def _import_string(names):
"""return a list of (name, asname) formatted as a string"""