##// END OF EJS Templates
add %run notebook.ipynb to what's new
add %run notebook.ipynb to what's new

File last commit:

r13535:b5697da7
r13647:08cee2a6
Show More
development.rst
102 lines | 4.3 KiB | text/x-rst | RstLexer

Development version

This document describes in-flight development work.

Warning

Please do not edit this file by hand (doing so will likely cause merge conflicts for other Pull Requests). Instead, create a new file in the docs/source/whatsnew/pr folder

  • %%capture cell magic now captures the rich display output, not just stdout/stderr

Select Notebook Name When Renaming a Notebook

The default notebook name is Untitled. It's unlikely you want to keep this name or part of it when naming your notebook. Instead, IPython will select the text in the input field so the user can easily type over the name and change it.

clear_output changes

  • There is no longer a 500ms delay when calling clear_output.
  • The ability to clear stderr and stdout individually was removed.
  • A new wait flag that prevents clear_output from being executed until new output is available. This eliminates animation flickering by allowing the user to double buffer the output.
  • The output div height is remembered when the wait=True flag is used.

Extending Configurable Containers

Some configurable traits are containers (list, dict, set) Config objects now support calling extend, update, insert, etc. on traits in config files, which will ultimately result in calling those methods on the original object.

The effect being that you can now add to containers without having to copy/paste the initial value:

   c = get_config()
   c.InlineBackend.rc.update({ 'figure.figsize' : (6, 4) })

* In notebook, Showing tooltip on tab has been disables to avoid conflict with
  completion, Shift-Tab could still be used to invoke tooltip when inside
  function signature and/or on selection.

Single codebase Python 3 support

IPython previously supported Python 3 by running 2to3 during setup. We have now switched to a single codebase which runs natively on Python 2.7 and 3.3.

For notes on how to maintain this, see :doc:`/development/pycompat`.

  • object_info_request as been replaced by object_info for consistency in the javascript API. object_info as a simpler interface to register callback that is incompatible with object_info_request.
  • Previous versions of IPython on Linux would use the XDG config directory, creating :file:`~/.config/ipython` by default. We have decided to go back to :file:`~/.ipython` for consistency among systems. IPython will issue a warning if it finds the XDG location, and will move it to the new location if there isn't already a directory there.
  • Equations, images and tables are now centered in Markdown cells.
  • Multiline equations are now centered in output areas; single line equations remain left justified.

Backwards incompatible changes

  • Python 2.6 and 3.2 are no longer supported: the minimum required Python versions are now 2.7 and 3.3.
  • The Transformer classes have been renamed to Preprocessor in nbconvert and their call methods for them have been renamed to preprocess.
  • The call methods of nbconvert post-processsors have been renamed to postprocess.
  • The module IPython.core.fakemodule has been removed.
  • The alias system has been reimplemented to use magic functions. There should be little visible difference while automagics are enabled, as they are by default, but parts of the :class:`~IPython.core.alias.AliasManager` API have been removed.
  • We fixed an issue with switching between matplotlib inline and GUI backends, but the fix requires matplotlib 1.1 or newer. So from now on, we consider matplotlib 1.1 to be the minimally supported version for IPython. Older versions for the most part will work, but we make no guarantees about it.
  • The :command:`pycolor` command has been removed. We recommend the much more capable :command:`pygmentize` command from the Pygments project. If you need to keep the exact output of :command:`pycolor`, you can still use python -m IPython.utils.PyColorize foo.py.