IPython, the open source shell for interactive computing that features a browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media, has reached Version 1, after nearly 12 years of development.
IPython provides tools for interactive and parallel computing that are widely used in scientific computing, but can benefit any Python developer.
It has been gathering steam over recent months with its creator, Dr Fernando Perez, winning the 2012 Award for the Advancement of Free Software, and the project being awarded up a $1.15 million grant from the Alfred P. Sloan Foundation to support its development over the two-year period 2013-14. This funding has allowed it to embark on an ambitious development schedule with Version 2 planned to be released by the end of this year.
According to the Introduction on its site:
The goal of IPython is to create a comprehensive environment for interactive and exploratory computing. To support this goal, IPython has three main components:
- An enhanced interactive Python shell.
- A decoupled two-process communication model, which allows for multiple clients to connect to a computation kernel, most notably the web-based notebook
- An architecture for interactive parallel computing.
IPython 1.0 is described as a big release and it supersedes v0.13. Its principal milestone is the addition of IPython.nbconvert which converts IPython notebooks to other formats, such as html, latex, html slideshow (Reveal.js), markdown and more, and provides better flexibility in how user input is handled. This tool should currently be treated as alpha level code.
This release sees two major re-organizations with kernel-related code moved to IPython.kernel, and its frontend subpackage removed to reduce unnecessary depth. The release requires Python 2.5.6 and beyond or Python 3.2.1 and beyond and does not support Python 2.5 or Python 3.0 or 3.1.
IPython is open source and is released under the revised BSD license. It can be manually downloaded from either Github or PyPI.
There are a lot of Python programmers who think that IPython is the way to go with interactive development environments so it is good that it now supports Python 3 and is moving ahead with the help of some financial support.