<div dir="ltr">Editra, an extensible programmer&#39;s editor written in wxPython, contain a cool IPython plugin. This mail is a follow up for a discussion with <cite>Laurent</cite> , The author of the plugin, in his blog, continue here according to his request. The Orginal discassion can be found in <a href="http://ipython0.wordpress.com/2008/04/25/editra-ipython-plugin-under-work/">http://ipython0.wordpress.com/2008/04/25/editra-ipython-plugin-under-work/</a> or at the end of this mail.<br>
<br><br>Using papi to set\redefine IPython&#39;s magic word partly do the job, The other part is to execute some arbitrary python code inside The ipython shell. Invoking papis &quot;ex&quot; method (Using papi from <i>ipython_panel.IP._IP.getapi() </i>) let the Code run in IPython&#39;s context, but the output is printed to Editra&#39;s stdout (The console in wich I invoked editra&#39;s from) and not in the IPython in the shelf.  My attempts to set sys.stdout to an handler from, let say, _term.cout or others, cused IPython to stack. futher more, the Exeption throws while I call ip.ex, is cought within Editra and withn IPython.<br>
<br>Further more - I wish to change, If I can, Only IPyShell/__init__.py and not the stuff in &quot;IPython&quot; dir, as it seems as a &quot;pure&quot; copy of IPython&#39;s orginal source (is it?)<br><br><br>Thanks,<br>
Ronen.<br><br><br>--------------------------------------<br>The orginal discassion:<br><ol class="commentlist snap_preview"><li class="comment even thread-even depth-1" id="comment-25"><cite>Ronen</cite> Says:                                                <br>

                        <small class="commentmetadata"><a href="http://ipython0.wordpress.com/2008/04/25/editra-ipython-plugin-under-work/#comment-25" title="">February 21, 2009 at 8:18 pm</a> </small>

                        <p>That’s a one cool Plugin.</p>
<p>What will make it ideal, is better integration with Editra’s Editor:<br>
Make ipython’s %edit Open the edit-buffer in Editra’s current Windows,
and Enable poeple to run The code they edit in Editra inside the open
IPython windows…<br>
Any hint where should I try to hack in order to achieve those?  </p>
<p>Thanks,<br>
Ronen.</p>

                </li><li class="comment odd alt thread-odd thread-alt depth-1" id="comment-26">
                        <img alt="" src="http://1.gravatar.com/avatar/7d4c274b8ecba154d3ee55838145bb23?s=32&amp;d=identicon" class="avatar avatar-32" width="32" height="32">                        <cite>Laurent</cite> Says:                                                <br>

                        <small class="commentmetadata"><a href="http://ipython0.wordpress.com/2008/04/25/editra-ipython-plugin-under-work/#comment-26" title="">February 22, 2009 at 10:45 am</a> </small>

                        <p>Hello,<br>
You can have access to the plugin repos:</p>
<p> # Non-members may check out a read-only working copy anonymously over HTTP.<br>
svn checkout <a href="http://editra-plugins.googlecode.com/svn/trunk/" rel="nofollow">http://editra-plugins.googlecode.com/svn/trunk/</a> editra-plugins-read-only </p>
<p>The plugin name is ipyshell, in it’s directory you’ve got the whole ipython source + the plugin source.</p>
<p>It need a little refresh for sure <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"> .</p>
<p>If you want to try to hack it take a look @Ipython/gui/wx the whole code is in ipython_view and ipshellnonblocking.</p>
<p>ipython_view -&gt; gui interface<br>
ipshellnonblocking -&gt; the interface with ipython</p>
<p>You can add:<br>
        ip = IPython.ipapi.get()<br>
        def myEdit(self, arg):<br>
            print ‘do what you want’<br>
        ip.expose_magic(’edit’, myEdit)</p>
<p>to WxNonBlockingIPShell inside ipython_view.py</p>
<p>Please note that if ipython is ever installed on your system you’ll
have to make a eggsetup.py develop to make sure to use your new local
copy.</p>
<p>We can discuss about all of this in ipython-dev mailing list <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<p>Cheers,<br>
Laurent</p>

                </li></ol><br><br></div>