[IPython-dev] Feature request/how?
cmoad at indiana.edu
Tue Feb 22 08:29:31 CST 2005
First of all, thanks for the code. I am getting unexpected results
however. For example, "%time time.sleep(5)" shows "Call time: 0.00 s."
I also have xmlrpc calls that take about 60 seconds that show a call
time of about 0.04 s. Are we thinking of different things?
Is it not possible to include assignment operators as well? Only
simple expressions seem to work.
Fernando.Perez at colorado.edu wrote:
> Quoting Charles Moad <cmoad at indiana.edu>:
>> Thanks for the pointer. I am still fuzzy on how I would create a magic
>>function using this, since I need to run the parameter_s arg of the
>>magic function in the current context. timing/timings takes the
>>actually function and args, not a string.
> It was quicker to just write the code rather than to explain how to do it. Here
> it is, it will go into the .12 release. I still need to write a docstring for
> it (that always takes longer than the actual code).
> def magic_time(self,parameter_s = ''):
> """Time execution of an expression which can be passed to eval().
> The value of the expression is returned."""
> # fail immediately if the given expression can't be compiled
> code = compile(parameter_s,'<timed evaluation>','eval')
> # skew measurement as little as possible
> glob = self.shell.user_ns
> clk = clock
> # time execution
> s = clk()
> out = eval(code,glob)
> tot = clk()-s
> print "Call time: %.2f s." % tot
> return out
More information about the IPython-dev