Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News IPython Gets Better Input Transformation Framework, Conversion Tool

IPython Gets Better Input Transformation Framework, Conversion Tool

This item in japanese


IPython, a rich architecture for interactive computing, just reached 1.0. The release sees addition of NbConvert, which converts IPython notebooks to other formats, better flexibility in how user input is handled and more.

Some of the notable changes –

  • Reorganization – kernel-related code moved to IPython.kernel, frontend subpackage removed to reduce unnecessary depth, Sphinx directives now installed in IPython.sphinx, so they can be imported by other projects
  • Kernel supports ZeroMQ IPC support, not just TCP
  • Couple of official APIs introduced – for starting ipython without embedding IPython (start_ipython) and for getting the current IPython instance (get_ipython).
  • Input transformation framework reworked to allow more flexibility in customizations.
  • Editor hooks have been restored, enabling for e.g. TextMate as an editor
  • NbConvert allows conversion of IPython notebooks to other formats such as html, latex, html slideshow (Reveal.js), markdown and more. This tool though is supposed to be treated as alpha level code.
  • Updated various javascript libraries used (JQuery, JQuery UI, CodeMirror, Twitter Bootstrap, marked, etc) to newer versions
  • Several improvements to IPython.parallel

This release needs Python >=2.6.5 or >=3.2.1. There are also some backward incompatible changes. You can refer to the release notes for more details, as well as the full list of issues closed in the github stats.

IPython provides various interfaces such as interactive shells, browser-based notebook and data visualization to enable interactive computing. It can be embedded into your own projects and also includes tools for parallel computing. Although the project is focussed on Python, it is architected to be language agnostic and there are already some experimental projects for supporting other languages.

Rate this Article