more yield from · python/cpython@fd0d3e5 · GitHub
Skip to content

Commit fd0d3e5

Browse files
committed
more yield from
patch by Serhiy Storchaka
1 parent 8bfcf51 commit fd0d3e5

5 files changed

Lines changed: 22 additions & 39 deletions

File tree

‎Lib/http/cookiejar.py‎

Lines changed: 1 addition & 2 deletions

‎Lib/json/encoder.py‎

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,7 @@ def _iterencode_list(lst, _current_indent_level):
305305
chunks = _iterencode_dict(value, _current_indent_level)
306306
else:
307307
chunks = _iterencode(value, _current_indent_level)
308-
for chunk in chunks:
309-
yield chunk
308+
yield from chunks
310309
if newline_indent is not None:
311310
_current_indent_level -= 1
312311
yield '\n' + _indent * _current_indent_level
@@ -381,8 +380,7 @@ def _iterencode_dict(dct, _current_indent_level):
381380
chunks = _iterencode_dict(value, _current_indent_level)
382381
else:
383382
chunks = _iterencode(value, _current_indent_level)
384-
for chunk in chunks:
385-
yield chunk
383+
yield from chunks
386384
if newline_indent is not None:
387385
_current_indent_level -= 1
388386
yield '\n' + _indent * _current_indent_level
@@ -404,20 +402,17 @@ def _iterencode(o, _current_indent_level):
404402
elif isinstance(o, float):
405403
yield _floatstr(o)
406404
elif isinstance(o, (list, tuple)):
407-
for chunk in _iterencode_list(o, _current_indent_level):
408-
yield chunk
405+
yield from _iterencode_list(o, _current_indent_level)
409406
elif isinstance(o, dict):
410-
for chunk in _iterencode_dict(o, _current_indent_level):
411-
yield chunk
407+
yield from _iterencode_dict(o, _current_indent_level)
412408
else:
413409
if markers is not None:
414410
markerid = id(o)
415411
if markerid in markers:
416412
raise ValueError("Circular reference detected")
417413
markers[markerid] = o
418414
o = _default(o)
419-
for chunk in _iterencode(o, _current_indent_level):
420-
yield chunk
415+
yield from _iterencode(o, _current_indent_level)
421416
if markers is not None:
422417
del markers[markerid]
423418
return _iterencode

‎Lib/xml/etree/ElementPath.py‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,12 @@ def select(context, result):
105105
def prepare_star(next, token):
106106
def select(context, result):
107107
for elem in result:
108-
for e in elem:
109-
yield e
108+
yield from elem
110109
return select
111110

112111
def prepare_self(next, token):
113112
def select(context, result):
114-
for elem in result:
115-
yield elem
113+
yield from result
116114
return select
117115

118116
def prepare_descendant(next, token):

‎Lib/xml/etree/ElementTree.py‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,7 @@ def iter(self, tag=None):
459459
if tag is None or self.tag == tag:
460460
yield self
461461
for e in self._children:
462-
for e in e.iter(tag):
463-
yield e
462+
yield from e.iter(tag)
464463

465464
# compatibility
466465
def getiterator(self, tag=None):
@@ -487,8 +486,7 @@ def itertext(self):
487486
if self.text:
488487
yield self.text
489488
for e in self:
490-
for s in e.itertext():
491-
yield s
489+
yield from e.itertext()
492490
if e.tail:
493491
yield e.tail
494492

‎Tools/importbench/importbench.py‎

Lines changed: 12 additions & 19 deletions

0 commit comments

Comments
 (0)