Skip to content

Commit

Permalink
utilize yield from
Browse files Browse the repository at this point in the history
  • Loading branch information
pjenvey committed Oct 1, 2012
1 parent 075bbb1 commit 4993cc0
Show file tree
Hide file tree
Showing 11 changed files with 18 additions and 36 deletions.
3 changes: 1 addition & 2 deletions Lib/argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -606,8 +606,7 @@ def _iter_indented_subactions(self, action):
pass
else:
self._indent()
for subaction in get_subactions():
yield subaction
yield from get_subactions()
self._dedent()

def _split_lines(self, text, width):
Expand Down
3 changes: 1 addition & 2 deletions Lib/collections/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -430,8 +430,7 @@ def __contains__(self, key):
return key in self._mapping

def __iter__(self):
for key in self._mapping:
yield key
yield from self._mapping

KeysView.register(dict_keys)

Expand Down
3 changes: 1 addition & 2 deletions Lib/concurrent/futures/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,7 @@ def as_completed(fs, timeout=None):
waiter = _create_and_install_waiters(fs, _AS_COMPLETED)

try:
for future in finished:
yield future
yield from finished

while pending:
if timeout is None:
Expand Down
21 changes: 7 additions & 14 deletions Lib/difflib.py
Original file line number Diff line number Diff line change
Expand Up @@ -922,8 +922,7 @@ def compare(self, a, b):
else:
raise ValueError('unknown tag %r' % (tag,))

for line in g:
yield line
yield from g

def _dump(self, tag, x, lo, hi):
"""Generate comparison results for a same-tagged range."""
Expand All @@ -942,8 +941,7 @@ def _plain_replace(self, a, alo, ahi, b, blo, bhi):
second = self._dump('+', b, blo, bhi)

for g in first, second:
for line in g:
yield line
yield from g

def _fancy_replace(self, a, alo, ahi, b, blo, bhi):
r"""
Expand Down Expand Up @@ -997,8 +995,7 @@ def _fancy_replace(self, a, alo, ahi, b, blo, bhi):
# no non-identical "pretty close" pair
if eqi is None:
# no identical pair either -- treat it as a straight replace
for line in self._plain_replace(a, alo, ahi, b, blo, bhi):
yield line
yield from self._plain_replace(a, alo, ahi, b, blo, bhi)
return
# no close pair, but an identical pair -- synch up on that
best_i, best_j, best_ratio = eqi, eqj, 1.0
Expand All @@ -1010,8 +1007,7 @@ def _fancy_replace(self, a, alo, ahi, b, blo, bhi):
# identical

# pump out diffs from before the synch point
for line in self._fancy_helper(a, alo, best_i, b, blo, best_j):
yield line
yield from self._fancy_helper(a, alo, best_i, b, blo, best_j)

# do intraline marking on the synch pair
aelt, belt = a[best_i], b[best_j]
Expand All @@ -1033,15 +1029,13 @@ def _fancy_replace(self, a, alo, ahi, b, blo, bhi):
btags += ' ' * lb
else:
raise ValueError('unknown tag %r' % (tag,))
for line in self._qformat(aelt, belt, atags, btags):
yield line
yield from self._qformat(aelt, belt, atags, btags)
else:
# the synch pair is identical
yield ' ' + aelt

# pump out diffs from after the synch point
for line in self._fancy_helper(a, best_i+1, ahi, b, best_j+1, bhi):
yield line
yield from self._fancy_helper(a, best_i+1, ahi, b, best_j+1, bhi)

def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
g = []
Expand All @@ -1053,8 +1047,7 @@ def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
elif blo < bhi:
g = self._dump('+', b, blo, bhi)

for line in g:
yield line
yield from g

def _qformat(self, aline, bline, atags, btags):
r"""
Expand Down
3 changes: 1 addition & 2 deletions Lib/email/_header_value_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,7 @@ def _pp(self, indent=''):
yield (indent + ' !! invalid element in token '
'list: {!r}'.format(token))
else:
for line in token._pp(indent+' '):
yield line
yield from token._pp(indent+' ')
if self.defects:
extra = ' Defects: {}'.format(self.defects)
else:
Expand Down
6 changes: 2 additions & 4 deletions Lib/email/iterators.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ def walk(self):
yield self
if self.is_multipart():
for subpart in self.get_payload():
for subsubpart in subpart.walk():
yield subsubpart
yield from subpart.walk()



Expand All @@ -40,8 +39,7 @@ def body_line_iterator(msg, decode=False):
for subpart in msg.walk():
payload = subpart.get_payload(decode=decode)
if isinstance(payload, str):
for line in StringIO(payload):
yield line
yield from StringIO(payload)


def typed_subpart_iterator(msg, maintype='text', subtype=None):
Expand Down
3 changes: 1 addition & 2 deletions Lib/glob.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ def iglob(pathname):
return
dirname, basename = os.path.split(pathname)
if not dirname:
for name in glob1(None, basename):
yield name
yield from glob1(None, basename)
return
if has_magic(dirname):
dirs = iglob(dirname)
Expand Down
3 changes: 1 addition & 2 deletions Lib/mailbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -631,8 +631,7 @@ def __setitem__(self, key, message):
def iterkeys(self):
"""Return an iterator over keys."""
self._lookup()
for key in self._toc.keys():
yield key
yield from self._toc.keys()

def __contains__(self, key):
"""Return True if the keyed message exists, False otherwise."""
Expand Down
3 changes: 1 addition & 2 deletions Lib/pkgutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,7 @@ def seen(p, m={}):
# don't traverse path items we've seen before
path = [p for p in path if not seen(p)]

for item in walk_packages(path, name+'.', onerror):
yield item
yield from walk_packages(path, name+'.', onerror)


def iter_modules(path=None, prefix=''):
Expand Down
3 changes: 1 addition & 2 deletions Lib/traceback.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,7 @@ def _iter_chain(exc, custom_tb=None, seen=None):
its.append([(exc, custom_tb or exc.__traceback__)])
# itertools.chain is in an extension module and may be unavailable
for it in its:
for x in it:
yield x
yield from it


def print_exception(etype, value, tb, limit=None, file=None, chain=True):
Expand Down
3 changes: 1 addition & 2 deletions Lib/weakref.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,7 @@ def itervaluerefs(self):
"""
with _IterationGuard(self):
for wr in self.data.values():
yield wr
yield from self.data.values()

def values(self):
with _IterationGuard(self):
Expand Down

0 comments on commit 4993cc0

Please sign in to comment.