IPython 5.0-LTS Released
Written by Janet Swift   
Monday, 11 July 2016

IPython 5 is the first version to get Long term Support (hence the LTS name). It features a major upgrade to the terminal interface with new editing facilities which are provided by a cross-platform library.

Until last year IPython used to refer to an open source shell for interactive and parallel computing widely used in scientific computing, the key component of which is a browser-based notebook, which could be used from many languages. Its name was changed to Jupyter in 2015 and now IPython refers only to Python kernel for Jupyter and the interactive Python shell. Jupyter Console 5.0, compatible with IPython 5.0 was also recently released.

jupyter

 

The announcement of the IPython 5.0 release on the Jupyter blog explains the emergence of an improved interface as a consequence of IPython's new found independence:

Decoupling IPython from the Jupyter Notebook package has allowed the core team to focus on improving the command line interface independently of the notebook. The awkward dependencies on pyreadline for Windows and gnureadline for Mac prompted Thomas Kluyver to replace the old machinery with a brand new pure-python readline replacement: prompt_toolkit.

The prompt_toolkit package created by Jonathan Slenders recently reached version 1.0. Thanks to its use IPython now supports: 

  • Syntax highlighting as you type
  • Real multi-line editing (up and down arrow keys move between lines)
  • Multi-line paste without breaking indentation or immediately executing code
  • Better code completion interface 
  • Optional mouse support

ipythoninterface

 

The 5.x Series notes state:

The overhaul of the terminal interface will probably cause a range of minor issues for existing users. This is inevitable for such a significant change, and we’ve done our best to minimise these issues.

It goes on to make suggestions for handling changes.

IPython also introduces the following backwards incompatible changes:

  • The %install_ext magic function, deprecated since 4.0, has now been deleted. You can distribute and install extensions as packages on PyPI.
  • Callbacks registered while an event is being handled will now only be called for subsequent events; previously they could be called for the current event. Similarly, callbacks removed while handling an event will always get that event. 
  • Integration with pydb has been removed since pydb development has been stopped since 2012, and pydb is not installable from PyPI.
  • The autoedit_syntax option, which has apparently been broken for many years, has been removed

One reason for IPython 5.x having long term support, with fixes for critical bugs by the core team until the end of 2017 and beyond that in response to pull requests, is that it is the last major version to support Python 2.  IPython 6.x will require Python 3.

With regard to this decision Matthias Bussonnier writes:

If you are a Python 2 user, be reassured, we will make sure that upgrading does not unexpectedly install IPython 6.x and break your system. You can decide to stay for a longer period of time on IPython 5.x LTS and decide to leapfrog a few IPython versions once you migrate to Python 3, though we recommend keeping up to date with the latest stable versions as they are released, and of course to migrate to Python 3 when possible.

IPython is the first IPython/Jupyter project to drop support for Python 2, but you can expect other components of IPython/Jupyter to follow. Since its inception, JupyterHub for example as always been Python 3 only.

It is important to note that users will always be able to use a Python 2 kernel with the Jupyter Notebook, even when all of our projects have transitioned to Python 3: as part of our LTS commitment, we will make any necessary updates to the IPython kernel so it can continue to work in a Jupyter Notebook for the duration of our LTS support.

He also notes that IPython has signed the  which is a pledge to drop support for Python 2.7 no later than 2020 to coincide with the Python development team's own target for ceasing support for the Python 2.x branch. 

 jupyter

More Information

Release of IPython 5.0

IPython 5.x Series 

Python 3 Statement

Related Articles

Jupyter 4.0 Completed By Release of IPython 4.0

IPython 3.0 Released 

Python 3 Gains Support and Enthusiasm

Python 3 For Science - A Survey

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


Apache Fury Adds Optimized Serializers For Scala
31/10/2024

Apache Fury has been updated to add GraalVM native images and with optimized serializers for Scala collection. The update also reduces Scala collection serialization cost via the use of  encoding [ ... ]



Google Opensources Privacy Library
08/11/2024

Google is making a new differential privacy library available as open source. PipelineDP4J is a Java-based library that can be used to analyse data sets while preserving privacy.


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Sunday, 23 April 2017 )