<div dir="ltr">Hi Laurent,<br><br>My hack attached.<br>It is mostly defined at &quot;ShellIntegrator&quot; class at the end of the file.<br><br>The work flow I want to achieve is as  following:<br>* in Ipython - &quot;%edit myfile.py&quot; or &quot;edit 1:5&quot; etc. Open editing buffer within the current windows, and returns without running the file.<br>
* Selectin &quot;Run&quot; from the tool menu in Editra run the buffer, as it was sopused to run after closing the editor.<br><br>By the way, the plugin have some series stabilty issues. <br>calling &#39;%run filename.py&#39; for none trevial python file is cusing editra crash with:<br>
python2.5: ../../src/xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy-&gt;request)) &gt;= 0)&#39; failed.<br>Aborted<br><br><br>Thanks, <br>Ronen<br><br><div class="gmail_quote">On Sun, Mar 1, 2009 at 3:33 AM, Laurent Dufréchou <span dir="ltr">&lt;<a href="mailto:laurent.dufrechou@gmail.com">laurent.dufrechou@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">









<div link="blue" vlink="purple" lang="FR">

<div>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Hi Ronen,</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Happy to see you’ve tried to hack the editra plugin ;)</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">IPyShell/__init__.py contains only the interface with editra. </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">I do not cleanly understand the step your are trying to do. You’ve
used ” %ed” than it launched editra new source panel? And closing it executed
your code, but stdin/out goes outside ipython shell?</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Is that what you tried?</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">About the files to modify. __init__.py in editra plugn is the definition
of the plugin interface and how you interact with editra.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Ipython dir is a pure copy that I was used to upload from time
to time. I have to take a look at some updates that cody did. (some
compatibility issue with python 2.6 and ipython tree)</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">The fact is that the update you’re currently trying to di will
surely need some update into /gui/wx I think </span><span style="font-size: 11pt; font-family: Wingdings; color: rgb(31, 73, 125);" lang="EN-US">L</span><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">. But well we’ll see.</span></p>


<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Depending on what you’ll want to do we will perhaps expose some
methods so plugin will be able to configure the things you need. (ex being able
to define an editor)</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">(I think we can use ipython config file but I’ve never used them
since then so…)</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">I will try to upload updated sources for python tree tomorrow,
so you’ll have a bleeding edge wx integration. I’ve corrected some bugs since
then.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Sure we will find a way to workaround the stdin/out issue you
saw.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Send me your current hack, I’ll take a look at your issue.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Cheers,</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">Laurent</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<div style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;">

<div>

<div style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0cm 0cm;">

<p><b><span style="font-size: 10pt;">De :</span></b><span style="font-size: 10pt;"> <a href="mailto:ipython-dev-bounces@scipy.org" target="_blank">ipython-dev-bounces@scipy.org</a>
[mailto:<a href="mailto:ipython-dev-bounces@scipy.org" target="_blank">ipython-dev-bounces@scipy.org</a>] <b>De la part de</b> Ronen Abravanel<br>
<b>Envoyé :</b> samedi 28 février 2009 22:53<br>
<b>À :</b> <a href="mailto:ipython-dev@scipy.org" target="_blank">ipython-dev@scipy.org</a><br>
<b>Objet :</b> [IPython-dev] Ipython plugin for Editra</span></p>

</div>

</div><div><div></div><div class="Wj3C7c">

<p> </p>

<div>

<p><span lang="EN-US">Editra, an extensible programmer&#39;s editor
written in wxPython, contain a cool IPython plugin. </span>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/" target="_blank">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>
<span lang="EN-US">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>
</span>--------------------------------------<br>
The orginal discassion:</p>

<ol start="1" type="1">
 <li><cite>Ronen</cite> Says: <br>
     <span style="font-size: 10pt;"><a href="http://ipython0.wordpress.com/2008/04/25/editra-ipython-plugin-under-work/#comment-25" title="" target="_blank">February 21, 2009 at 8:18 pm</a> </span></li>
</ol>

<p style="margin-left: 36pt;">That’s a one cool Plugin.</p>

<p style="margin-left: 36pt;">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 style="margin-left: 36pt;">Thanks,<br>
Ronen.</p>

<ol start="2" type="1">
 <li><img border="0" width="32" height="32"><cite>Laurent</cite>
     Says: <br>
     <span style="font-size: 10pt;"><a href="http://ipython0.wordpress.com/2008/04/25/editra-ipython-plugin-under-work/#comment-26" title="" target="_blank">February 22, 2009 at 10:45 am</a> </span></li>
</ol>

<p style="margin-left: 36pt;">Hello,<br>
You can have access to the plugin repos:</p>

<p style="margin-left: 36pt;"># 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/" target="_blank">http://editra-plugins.googlecode.com/svn/trunk/</a>
editra-plugins-read-only </p>

<p style="margin-left: 36pt;">The plugin name is ipyshell, in it’s directory
you’ve got the whole ipython source + the plugin source.</p>

<p style="margin-left: 36pt;"><span lang="EN-US">It need a little refresh for
sure </span><img alt=":)" border="0"><span lang="EN-US">.</span></p>

<p style="margin-left: 36pt;">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 style="margin-left: 36pt;">ipython_view -&gt; gui interface<br>
ipshellnonblocking -&gt; the interface with ipython</p>

<p style="margin-left: 36pt;">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 style="margin-left: 36pt;">to WxNonBlockingIPShell inside ipython_view.py</p>

<p style="margin-left: 36pt;">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 style="margin-left: 36pt;"><span lang="EN-US">We can discuss about all of this
in ipython-dev mailing list </span><img alt=":)" border="0"><span lang="EN-US"></span></p>

<p style="margin-left: 36pt;">Cheers,<br>
Laurent</p>

<p style="margin-bottom: 12pt;"> </p>

</div>

</div></div></div>

</div>

</div>


</blockquote></div><br></div>