summaryrefslogtreecommitdiff
path: root/Lib/timeit.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-05-30 19:38:26 +0300
committerSerhiy Storchaka <storchaka@gmail.com>2015-05-30 19:38:26 +0300
commit02b73049675f388de1b33f81875b760f5a75cb5c (patch)
tree5f9d66009d2236fbb1a99ecf11636652d7e3aafd /Lib/timeit.py
parentb6574f2b45715eec7d9f734f7116a2e370c8561c (diff)
downloadcpython-02b73049675f388de1b33f81875b760f5a75cb5c.tar.gz
Issue #5633: Fixed timeit when the statement is a string and the setup is not.
Diffstat (limited to 'Lib/timeit.py')
-rwxr-xr-xLib/timeit.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/Lib/timeit.py b/Lib/timeit.py
index cf7446d8c1..0b1c601c97 100755
--- a/Lib/timeit.py
+++ b/Lib/timeit.py
@@ -65,7 +65,7 @@ default_timer = time.perf_counter
# in Timer.__init__() depend on setup being indented 4 spaces and stmt
# being indented 8 spaces.
template = """
-def inner(_it, _timer):
+def inner(_it, _timer{init}):
{setup}
_t0 = _timer()
for _i in _it:
@@ -119,9 +119,10 @@ class Timer:
stmt = reindent(stmt, 8)
if isinstance(setup, str):
setup = reindent(setup, 4)
- src = template.format(stmt=stmt, setup=setup)
+ src = template.format(stmt=stmt, setup=setup, init='')
elif callable(setup):
- src = template.format(stmt=stmt, setup='_setup()')
+ src = template.format(stmt=stmt, setup='_setup()',
+ init=', _setup=_setup')
ns['_setup'] = setup
else:
raise ValueError("setup is neither a string nor callable")