[IPython-dev] Feature request/how?

Fernando.Perez at colorado.edu Fernando.Perez at colorado.edu
Tue Feb 22 01:44:24 EST 2005


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).

Best,

f

    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 mailing list