[IPython-User] "extended" macro

Thomas Kluyver takowl@gmail....
Thu Nov 24 04:18:02 CST 2011


On 24 November 2011 03:17, Tom Bennett <tom.bennett@mail.zyzhu.net> wrote:

> 1) In 0.11 and 0.12 we have lost the ability to save  macros.
>
It's back for 0.12, in the 'storemagic' extension. Add that to
c.InteractiveShellApp.extensions in your ipython_config.py file to have it
always enabled.


> 2) Some of my macros are pretty complicated.  I would like to be able
> create macros by using an editor insteas of typing them under the command
> prompt
>
"%macro mymacro thefile.py" should define a macro from a file. Or I'm sure
it's possible to use %edit and %macro somehow if you prefer.

> An alternative I am thinking about is to use %run file args. The problems
> with that are: 1) the args parameter is quite limited. I cannot pass
> variables to it;
>
If you call %run -i file, it will be run in your namespace (like a macro),
so it can refer to variables you've already defined.

> 2) it is a lot to type "run file args" every single time
>
Try %r <up arrow>.


>  A third way is just to define a python function.  For example:
>
>
> def my_command(param1):
>     s = Object(param1)
>     vw = View(s)
>     vw.show()
>
>
> The problem with this is that I want s and vw to be in the global
> namespace, so that after my_command finishes, I can still play with s and
> vw.  So this does not work either.
>

If you put "global s, vw" at the top of the function, they are put into the
global namespace. That's not IPython magic - it's standard Python.

Hope that helps ;-)
Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/ipython-user/attachments/20111124/d5c1866f/attachment-0001.html 


More information about the IPython-User mailing list