All work done will be tested and documented as it progresses, not after the fact.
* week 1,2
* Break up today's IPython monolithic object into kernel/frontend objects, while remaining in-process. This is the first step of the transition to a two process model but it will allow me to retain a functioning IPython during the transition. These objects will still make local python method calls and attribute accesses.
* Identify all the APIs that will require communication between kernel and frontend.
* week 3,4
* Modify the kernel/frontend objects to use messaging for all cross-object communication. This will be done using a local mock transport (no zmq dependency yet) but using JSON messages.
* week 5, 6
* Move kernel and client to separate processes and add the zmq transport to move the messages across the process boundary.
* week 7, 8
* Implement and test tab-completion and function tooltips across the process boundary, with support for multiple simultaneous clients. This is particularly tricky because these are asynchronous events that can happen while the kernel is busy executing code, so timeouts and multi-client support must be carefully thought out.
* week 9, 10
* Implement the configuration of kernel/frontend on the IPython configuration description system (which already exists).
* Slack time if any of the previous tasks took longer than originally planned.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario