[IPython-user] ipython1.frontend status

Barry Wark barrywark@gmail....
Thu Jun 5 10:51:25 CDT 2008

On Thu, Jun 5, 2008 at 8:21 AM, Brian Granger <ellisonbg.net@gmail.com> wrote:
>> Hello barry,
>> We want screenshots! ^_^
>> Don't see if you saw my previous mail but i'm really interested in your work
>> because of the ipython1 compatibility + remote execution.
>> Here are two questions:
>> -Do you support ctrl+c (break in a loop)?
> Barry should be able to implement this is the core/engine is running
> in process.  If the engine is running out of process (possibly on
> another machine), he would have to tie into the daemon infrastructure
> that Min has been working on.  This creates a monitor process for
> every ipython process that is capable of sending it signals over the
> network.  Not quite ready yet, but it is getting there.

Unfortunately it seems that the Twisted integration with the Cocoa run
loop (via t.i.cfreactor or t.i._threadedselect) runs the entire
Twisted run loop to empty before passing control back to the native
run loop. Thus, native events aren't processed while an in-process
engine is executing. Doh! I will have to look into this a bit more
before I feel like I really understand it all.

>> -Do you support in loop stdout?:
>> I mean:
>> If (1):
>>      print "hello"
>> Does it display lot of hello WHILE executing the loop?
> I don't think it supports this, and this raises a huge set of
> questions.  Honestly, I am not sure this can be done in generality.
> Some thoughts:
> 1) This requires that the core/engine be able to send events back to
> the frontend.  There are two ways of handling this: 1) have the
> frontend register callbacks that get called when the core observes
> certain events (writing to stdout) or 2) define an actual API for
> monitoring the cores events.  I think this second choice is better as
> it will keep the coupling between the core and frontend to a minimum.
> But, this API will be quite subtle and will require extensive
> knowledge of Twisted and symmetric network protocols like
> Foolscap/Perspective Broker.  It would also dramatically change the
> design of the controller and engines.
> Oh, as an aside, another example of a core event is watching the
> user's namespace for new keys.

+1 for core events.

> 2) We might want to allow this type of thing for in process cores, but
> not for remote ones.

>> -Do you support completion (althought it is not really important, 'cause
>> must be easy no?)
> Not yet, but everything is in place for this to work.  The only thing
> that has to happen is the engine needs the complete method to be
> implemented.
>> If not, do you see any problem to implement this? I ask this because it was
>> the hardest things i had to implement on my wx frontend.
>> And I want to be sure before switching ot ipython1 core not to loose these
>> important features.
> Don't worry about switching to the ipython1 core, it is coming to you
> (it will be in IPython trunk soon).  Then we can begin hacking on it
> together to add these things.
>> By the way, can you explain me difference between 'I wrote a delegate for
>> the
>> NSTextView' and subclassing? (sorry)
> I will leave this for Barry.

More information about the IPython-user mailing list