Issue #16120: Use |yield from| in stdlib.

Patch by Berker Peksag.
This commit is contained in:
Andrew Svetlov 2012-10-06 17:11:45 +03:00
parent c018f57186
commit 7d14015e62
3 changed files with 6 additions and 12 deletions

View File

@ -96,8 +96,7 @@ class MinNode(object):
def leaves(self):
"Generator that returns the leaves of the tree"
for child in self.children:
for x in child.leaves():
yield x
yield from child.leaves()
if not self.children:
yield self
@ -277,7 +276,6 @@ def rec_test(sequence, test_func):
sub-iterables"""
for x in sequence:
if isinstance(x, (list, tuple)):
for y in rec_test(x, test_func):
yield y
yield from rec_test(x, test_func)
else:
yield test_func(x)

View File

@ -194,8 +194,7 @@ class Base(object):
def leaves(self):
for child in self.children:
for x in child.leaves():
yield x
yield from child.leaves()
def depth(self):
if self.parent is None:
@ -274,16 +273,14 @@ class Node(Base):
def post_order(self):
"""Return a post-order iterator for the tree."""
for child in self.children:
for node in child.post_order():
yield node
yield from child.post_order()
yield self
def pre_order(self):
"""Return a pre-order iterator for the tree."""
yield self
for child in self.children:
for node in child.pre_order():
yield node
yield from child.pre_order()
def _prefix_getter(self):
"""

View File

@ -291,8 +291,7 @@ class TestLoader(object):
# tests loaded from package file
yield tests
# recurse into the package
for test in self._find_tests(full_path, pattern):
yield test
yield from self._find_tests(full_path, pattern)
else:
try:
yield load_tests(self, tests, pattern)