parent
8bfcf51b5d
commit
fd0d3e5d25
|
@ -1193,8 +1193,7 @@ def deepvalues(mapping):
|
|||
pass
|
||||
else:
|
||||
mapping = True
|
||||
for subobj in deepvalues(obj):
|
||||
yield subobj
|
||||
yield from deepvalues(obj)
|
||||
if not mapping:
|
||||
yield obj
|
||||
|
||||
|
|
|
@ -305,8 +305,7 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
|
|||
chunks = _iterencode_dict(value, _current_indent_level)
|
||||
else:
|
||||
chunks = _iterencode(value, _current_indent_level)
|
||||
for chunk in chunks:
|
||||
yield chunk
|
||||
yield from chunks
|
||||
if newline_indent is not None:
|
||||
_current_indent_level -= 1
|
||||
yield '\n' + _indent * _current_indent_level
|
||||
|
@ -381,8 +380,7 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
|
|||
chunks = _iterencode_dict(value, _current_indent_level)
|
||||
else:
|
||||
chunks = _iterencode(value, _current_indent_level)
|
||||
for chunk in chunks:
|
||||
yield chunk
|
||||
yield from chunks
|
||||
if newline_indent is not None:
|
||||
_current_indent_level -= 1
|
||||
yield '\n' + _indent * _current_indent_level
|
||||
|
@ -404,11 +402,9 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
|
|||
elif isinstance(o, float):
|
||||
yield _floatstr(o)
|
||||
elif isinstance(o, (list, tuple)):
|
||||
for chunk in _iterencode_list(o, _current_indent_level):
|
||||
yield chunk
|
||||
yield from _iterencode_list(o, _current_indent_level)
|
||||
elif isinstance(o, dict):
|
||||
for chunk in _iterencode_dict(o, _current_indent_level):
|
||||
yield chunk
|
||||
yield from _iterencode_dict(o, _current_indent_level)
|
||||
else:
|
||||
if markers is not None:
|
||||
markerid = id(o)
|
||||
|
@ -416,8 +412,7 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
|
|||
raise ValueError("Circular reference detected")
|
||||
markers[markerid] = o
|
||||
o = _default(o)
|
||||
for chunk in _iterencode(o, _current_indent_level):
|
||||
yield chunk
|
||||
yield from _iterencode(o, _current_indent_level)
|
||||
if markers is not None:
|
||||
del markers[markerid]
|
||||
return _iterencode
|
||||
|
|
|
@ -105,14 +105,12 @@ def prepare_child(next, token):
|
|||
def prepare_star(next, token):
|
||||
def select(context, result):
|
||||
for elem in result:
|
||||
for e in elem:
|
||||
yield e
|
||||
yield from elem
|
||||
return select
|
||||
|
||||
def prepare_self(next, token):
|
||||
def select(context, result):
|
||||
for elem in result:
|
||||
yield elem
|
||||
yield from result
|
||||
return select
|
||||
|
||||
def prepare_descendant(next, token):
|
||||
|
|
|
@ -459,8 +459,7 @@ class Element:
|
|||
if tag is None or self.tag == tag:
|
||||
yield self
|
||||
for e in self._children:
|
||||
for e in e.iter(tag):
|
||||
yield e
|
||||
yield from e.iter(tag)
|
||||
|
||||
# compatibility
|
||||
def getiterator(self, tag=None):
|
||||
|
@ -487,8 +486,7 @@ class Element:
|
|||
if self.text:
|
||||
yield self.text
|
||||
for e in self:
|
||||
for s in e.itertext():
|
||||
yield s
|
||||
yield from e.itertext()
|
||||
if e.tail:
|
||||
yield e.tail
|
||||
|
||||
|
|
|
@ -46,8 +46,7 @@ def from_cache(seconds, repeat):
|
|||
module.__package__ = ''
|
||||
with util.uncache(name):
|
||||
sys.modules[name] = module
|
||||
for result in bench(name, repeat=repeat, seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, repeat=repeat, seconds=seconds)
|
||||
|
||||
|
||||
def builtin_mod(seconds, repeat):
|
||||
|
@ -56,9 +55,8 @@ def builtin_mod(seconds, repeat):
|
|||
if name in sys.modules:
|
||||
del sys.modules[name]
|
||||
# Relying on built-in importer being implicit.
|
||||
for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds)
|
||||
|
||||
|
||||
def source_wo_bytecode(seconds, repeat):
|
||||
|
@ -73,9 +71,8 @@ def source_wo_bytecode(seconds, repeat):
|
|||
loader = (importlib.machinery.SourceFileLoader,
|
||||
importlib.machinery.SOURCE_SUFFIXES, True)
|
||||
sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
|
||||
for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds)
|
||||
finally:
|
||||
sys.dont_write_bytecode = False
|
||||
|
||||
|
@ -89,9 +86,8 @@ def _wo_bytecode(module):
|
|||
os.unlink(bytecode_path)
|
||||
sys.dont_write_bytecode = True
|
||||
try:
|
||||
for result in bench(name, lambda: sys.modules.pop(name),
|
||||
repeat=repeat, seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, lambda: sys.modules.pop(name),
|
||||
repeat=repeat, seconds=seconds)
|
||||
finally:
|
||||
sys.dont_write_bytecode = False
|
||||
|
||||
|
@ -127,8 +123,7 @@ def _writing_bytecode(module):
|
|||
def cleanup():
|
||||
sys.modules.pop(name)
|
||||
os.unlink(imp.cache_from_source(module.__file__))
|
||||
for result in bench(name, cleanup, repeat=repeat, seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, cleanup, repeat=repeat, seconds=seconds)
|
||||
|
||||
writing_bytecode_benchmark.__doc__ = (
|
||||
writing_bytecode_benchmark.__doc__.format(name))
|
||||
|
@ -148,9 +143,8 @@ def source_using_bytecode(seconds, repeat):
|
|||
sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
|
||||
py_compile.compile(mapping[name])
|
||||
assert os.path.exists(imp.cache_from_source(mapping[name]))
|
||||
for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds)
|
||||
|
||||
|
||||
def _using_bytecode(module):
|
||||
|
@ -158,9 +152,8 @@ def _using_bytecode(module):
|
|||
def using_bytecode_benchmark(seconds, repeat):
|
||||
"""Source w/ bytecode: {}"""
|
||||
py_compile.compile(module.__file__)
|
||||
for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds):
|
||||
yield result
|
||||
yield from bench(name, lambda: sys.modules.pop(name), repeat=repeat,
|
||||
seconds=seconds)
|
||||
|
||||
using_bytecode_benchmark.__doc__ = (
|
||||
using_bytecode_benchmark.__doc__.format(name))
|
||||
|
|
Loading…
Reference in New Issue