[IPython-dev] ipython embedded in twisted, no threads

Stefan Rank list-ener at strank.info
Wed May 2 08:13:34 EDT 2007

on 18.04.2007 20:37 Jörgen Stenarson said the following:
> Hi Stefan,
> I have done some more experimenting. And now I think I have something 
> resembling what you were after. If you replace the emacs.py file in 
> pyreadline/modes/emacs.py with the attached version. Then running the 
> async_test.py should give you a prompt where you can type away and at 
> the same time the window title has a counter that is increased every 
> second. Make sure you have a recent update from svn before replacing 
> emacs.py.

Hi Jörgen,

attached is a small testfile using your modified emacs.py.
Works as expected.
I added some monkeypatching to expose a GNU-readline-callback-api-alike 
as module level functions.
If these look good to you, it would be great if you could incorporate 
them into pyreadline.

I am not sure about handling of Ctrl-C/D... but for users of the 
callback interface, a keyboard interrupt will typically occur outside of 
readline code, so it's the concern of the calling code (which is waiting 
for events) anyway.
I will also try to expose the GNU readline callback variant on Linux 
using ctypes and see how it behaves.
(Next step towards world domination: Get this and pyreadline into the 
Python standard library... ;-)

As for twisted: to use this callback interface I am subclassing 
twisted.internet.stdio.StandardIO (as ReadlineIO), and it sort of works 
Currently, I am not really sure about when and where to add '\r\n' (or 
even '\n'? )... to the prompt? to printing of the result? ... but that 
is a minor problem.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: readlinecallbacktest.py
Type: text/x-python
Size: 3388 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20070502/ce3882e4/attachment.py>

More information about the IPython-dev mailing list