[IPython-user] Using IPShellEmbed
Frédéric Mantegazza
mantegazza at ill.fr
Wed Oct 11 03:02:48 CDT 2006
Le mardi 10 octobre 2006 19:18, Fernando Perez a écrit :
> This isn't really supported out of the box. I can have a look later,
> but in the meantime, here's the outline of what I'd do in case you
> want to try it yourself. Start by doing this as a subclass of
> IPShellEmbed, if the approach works we can add a cleaner API for the
> next release.
>
> Subclass IPShellEmbed and override runlines, so that it takes local_ns
> and global_ns much like __call__ does. Then, make your new runlines()
> be basically a merge of the existing one and a copy of
> embed_mainloop() (found in iplib), where you replace the call
>
> self.interact(header)
>
> with the previous runlines() actions.
>
> This is what I'd do just to get a quick and dirty test of whether the
> whole idea works correctly and does what you need. If the answer is
> yes, then we can easily modify the APIs to do this without such
> copy/paste hacks.
Thanks for the answer.
Looking in the code, I found a 'user_ns' parameter in the IPShellEmbed
__init__() method. I tried to use it to set my context, and it seems to
work. The difference is that objects registered in that 'user_ns' context
are not seen whith the 'who' command, but are available.
What is exactly the purpose of this parameter? May I use it for what I want
to do?
--
Frédéric
More information about the IPython-user
mailing list