This documentation is for a development version of IPython. There may be significant differences from the latest stable release.
This document describes in-flight development work.
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
You can now choose a kernel for a notebook within the user interface, rather than starting up a separate notebook server for each kernel you want to use. The syntax highlighting adapts to match the language you’re working in.
Information about the kernel is stored in the notebook file, so when you open a notebook, it will automatically start the correct kernel.
It is also easier to use the Qt console and the terminal console with other kernels, using the –kernel flag:
ipython qtconsole --kernel bash ipython console --kernel bash # To list available kernels ipython kernelspec list
Kernel authors should see Kernel specs for how to register their kernels with IPython so that these mechanisms work.
Complex expressions can be much cleaner when written with a wider choice of characters. Python 3 allows unicode identifiers, and IPython 3 makes it easier to type those, using a feature from Julia. Type a backslash followed by a LaTeX style short name, such as \alpha. Press tab, and it will turn into α.
TextWidget and TextareaWidget objects now include a placeholder attribute, for displaying placeholder text before the user has typed anything.
The %load magic can now find the source for objects in the user namespace. To enable searching the namespace, use the -n option.
In : %load -n my_module.some_function
DirectView objects have a new use_cloudpickle() method, which works like view.use_dill(), but causes the cloudpickle module from PiCloud’s cloud library to be used rather than dill or the builtin pickle module.
Added a .ipynb exporter to nbconvert. It can be used by passing --to notebook as a commandline argument to nbconvert.
New nbconvert preprocessor called ClearOutputPreprocessor. This clears the output from IPython notebooks.
New preprocessor for nbconvert that executes all the code cells in a notebook. To run a notebook and save its output in a new notebook:
ipython nbconvert InputNotebook --ExecutePreprocessor.enabled=True --to notebook --output Executed
Consecutive stream (stdout/stderr) output is merged into a single output in the notebook document. Previously, all output messages were preserved as separate output fields in the JSON. Now, the same merge is applied to the stored output as the displayed output, improving document load time for notebooks with many small outputs.
IPython.core.oinspect.getsource() call specification has changed:
Removed the octavemagic extension: it is now available as oct2py.ipython.
Creating PDFs with LaTeX no longer uses a post processor. Use nbconvert --to pdf instead of nbconvert --to latex --post pdf.
Used https://github.com/jdfreder/bootstrap2to3 to migrate the Notebook to Bootstrap 3.
IPython.utils.py3compat.open was removed: io.open() provides all the same functionality.
The NotebookManager and /api/notebooks service has been replaced by a more generic ContentsManager and /api/contents service, which supports all kinds of files.
The Dashboard now lists all files, not just notebooks and directories.
The --script hook for saving notebooks to Python scripts is removed, use ipython nbconvert --to python notebook instead.
The rmagic extension is deprecated, as it is now part of rpy2. See rpy2.ipython.rmagic.
The widget classes have been renamed from *Widget to *. The old names are still functional, but are deprecated. i.e. IntSliderWidget has been renamed to IntSlider.
The ContainerWidget was renamed to Box and no longer defaults as a flexible box in the web browser. A new FlexBox widget was added, which allows you to use the flexible box model.