domingo, 8 de agosto de 2010

Ipython Zmq Status

IPython currently has all the things proposed for GSoC and so many features that improved the functionality.
The design was changed in a little features in Scipy conference 2010 at Austin TX to improve comunication's system; the idea was write a module that let comunication between various frontends in the same kernel, the madule was called kernelmanager.

The work done during the project is summarized within these points:
1) IPython was divided in a two process model.
2) The two process model is using zeromq (pyzmq) for comunnication between frontend and kernel.
3) The messages were standardized and transported under pyzmq using json.
4) The frontend supports indentation and colors in outputs (Syntax highlighting).
5) raw_input is captured.
6) tab-completion and magic commands supported.
7) IPython output "Out [1] :", subprocess outputs and stdout/stderr outputs also supported.
8) Kernelmanager support to comunication using pyzmq.
9) Implemented codebreacker to indent code in terminal and get a block of code to send to kernel.
10) Every method and funtion documented.
11) Test files.
12) Indexation of inputs like "In[#]" that was implemented creating a new request`s message type called prompt_request.
13) support Crtl+C to stop proccess in kernel, sending signal SIGINT with the kernel's pid.
the kernel's pid was gotten using a new request's message called pid_request.

TODO:
1) Improve testing.
2) Improve the multiuser features.
3) New message type called object_info_request that allows us to get object`s info from kernel.

you can download and test the code from http://github.com/omazapa/ipython (see installation section)

If any question or suggestion arise, please write me to andresete.chaos@gmail.com or write in ipython`s mailing lists.

2 comentarios:

  1. Sounds good except for the part where you use json serialization. Why not use Python pickle? You may some day have to pass objects that can't represented in json.

    ResponderEliminar
  2. oh yeah! in this moment we are using pickle and json, the json was implemented in the project pyzmq I just use pyzmq functions.

    ResponderEliminar