[IPython-dev] Gsoc students: preliminary homework

Fernando Perez fperez.net@gmail....
Tue Apr 27 00:36:47 CDT 2010

Hi folks,

IPython is a fun project, but the internals of the code are complex to
navigate.  In order for you to succeed this summer, you'll need to get
the basic ideas right, and those are fortunately very simple, and
implemented in the Python standard library in a small and easy to read
code.  I recommend you start by understanding *extremely well* how
this module operates:


That is the code that IPython originated from.  Even though today we
don't even inherit from it anymore, the interaction model is very much
the same, and it is vastly simpler to understand than IPython.  The
zmq kernel/frontend prototype that Brian and I wrote is based on it as

So study and understand *every single part* of that code and the zmq
kernel/frontend examples.  IPython implements similar ideas but with a
ton of extra complexity, and you'll get lost in the IPython code if
you dive into it first.  But if you understand the code.py module,
you'll see that all IPython does is add bells and whistles to it, so
you'll be much more capable of navigating IPython itself.

Play with that, try to add a feature to it (like simple tab
completion), see how our zmq prototype uses it in a two-process model,
etc.  Once the main objects in that code make sense to you, and how
they operate, dive into the IPython source tree itself.

Given the official timeline:


You have one month of 'community bonding' to get up to speed on the
project. That month starts now :)



More information about the IPython-dev mailing list