5050"""
5151
5252import gc
53+ import itertools
5354import sys
5455import time
55- import itertools
5656
5757__all__ = ["Timer" , "timeit" , "repeat" , "default_timer" ]
5858
@@ -77,9 +77,11 @@ def inner(_it, _timer{init}):
7777 return _t1 - _t0
7878"""
7979
80+
8081def reindent (src , indent ):
8182 """Helper to reindent a multi-line statement."""
82- return src .replace ("\n " , "\n " + " " * indent )
83+ return src .replace ("\n " , "\n " + " " * indent )
84+
8385
8486class Timer :
8587 """Class for timing execution speed of small code snippets.
@@ -166,7 +168,7 @@ def timeit(self, number=default_number):
166168
167169 To be precise, this executes the setup statement once, and
168170 then returns the time it takes to execute the main statement
169- a number of times, as a float measured in seconds. The
171+ a number of times, as float seconds if using the default timer. The
170172 argument is the number of times through the loop, defaulting
171173 to one million. The main statement, the setup statement and
172174 the timer function to be used are passed to the constructor.
@@ -228,16 +230,19 @@ def autorange(self, callback=None):
228230 return (number , time_taken )
229231 i *= 10
230232
233+
231234def timeit (stmt = "pass" , setup = "pass" , timer = default_timer ,
232235 number = default_number , globals = None ):
233236 """Convenience function to create Timer object and call timeit method."""
234237 return Timer (stmt , setup , timer , globals ).timeit (number )
235238
239+
236240def repeat (stmt = "pass" , setup = "pass" , timer = default_timer ,
237241 repeat = default_repeat , number = default_number , globals = None ):
238242 """Convenience function to create Timer object and call repeat method."""
239243 return Timer (stmt , setup , timer , globals ).repeat (repeat , number )
240244
245+
241246def main (args = None , * , _wrap_timer = None ):
242247 """Main program, used when run as a script.
243248
@@ -270,7 +275,7 @@ def main(args=None, *, _wrap_timer=None):
270275
271276 timer = default_timer
272277 stmt = "\n " .join (args ) or "pass"
273- number = 0 # auto-determine
278+ number = 0 # auto-determine
274279 setup = []
275280 repeat = default_repeat
276281 verbose = 0
@@ -287,7 +292,7 @@ def main(args=None, *, _wrap_timer=None):
287292 time_unit = a
288293 else :
289294 print ("Unrecognized unit. Please select nsec, usec, msec, or sec." ,
290- file = sys .stderr )
295+ file = sys .stderr )
291296 return 2
292297 if o in ("-r" , "--repeat" ):
293298 repeat = int (a )
@@ -321,7 +326,7 @@ def callback(number, time_taken):
321326 msg = "{num} loop{s} -> {secs:.{prec}g} secs"
322327 plural = (number != 1 )
323328 print (msg .format (num = number , s = 's' if plural else '' ,
324- secs = time_taken , prec = precision ))
329+ secs = time_taken , prec = precision ))
325330 try :
326331 number , _ = t .autorange (callback )
327332 except :
@@ -372,5 +377,6 @@ def format_time(dt):
372377 UserWarning , '' , 0 )
373378 return None
374379
380+
375381if __name__ == "__main__" :
376382 sys .exit (main ())
0 commit comments