
On Sun, Oct 07, 2018 at 10:16:08AM +0000, Amjad Ben Hedhili wrote:
I think that a time decorator will be a useful addition to the sandard library, as i find the current way of measuring execution time a bit tedious:
timeit.timeit("fun_to_time(a, b)", setup="from __main__ import a, b", number=1)
There are lots of ways to call timeit, but generally if you are calling it with number=1 then your results may not be trustworthy. (That depends on the function, of course.) There's a reason why timeit defaults to number=1000000 rather than 1.
compared to:
@timef def fun_to_time(a, b): ...
The problem with that as an API is that once you have decorated the function to call timeit, how do you use it *without* calling timeit?
If you use functools.wraps, there will be a func_to_time.__wrapped__ but I don't think that calling that directly is a good interface.
or
timef(print)("Hello world!").
I already made a basic implementation of it, and it's working well.
Can you explain what the timef decorator does? What arguments does it take, how do we use it?