##// END OF EJS Templates
more DRYing out of consoleapp
more DRYing out of consoleapp

File last commit:

r16157:7566b598
r16504:2b99a4c3
Show More
version2.0.rst
324 lines | 12.6 KiB | text/x-rst | RstLexer
MinRK
add what's new for 2.0
r16144 ============
2.0 Series
============
Release 2.0.0
=============
April, 2014
fix required Python versions
r16152 IPython 2.0 requires Python ≥ 2.7.2 or ≥ 3.3.0.
It does not support Python 3.0, 3.1, 3.2, 2.5, or 2.6.
MinRK
add what's new for 2.0
r16144
The principal milestones of 2.0 are:
MinRK
review pass on what's new in 2.0
r16147 - interactive widgets for the notebook
- directory navigation in the notebook dashboard
- persistent URLs for notebooks
MinRK
add what's new for 2.0
r16144 - a new modal user interface in the notebook
- a security model for notebooks
Contribution summary since IPython 1.0 in August, 2013:
- ~8 months of work
- ~650 pull requests merged
- ~400 issues closed (non-pull requests)
- contributions from ~100 authors
- ~4000 commits
The amount of work included in this release is so large that we can only cover
here the main highlights; please see our :ref:`detailed release statistics
<issues_list_200>` for links to every issue and pull request closed on GitHub
as well as a full list of individual contributors.
New stuff in the IPython notebook
---------------------------------
Directory navigation
********************
.. image:: /_images/2.0/treeview.png
:width: 392px
:alt: Directory navigation
:align: center
The IPython notebook dashboard allows navigation into subdirectories.
MinRK
review pass on what's new in 2.0
r16147 URLs are persistent based on the notebook's path and name,
MinRK
add what's new for 2.0
r16144 so no more random UUID URLs.
Serving local files no longer needs the ``files/`` prefix.
Relative links across notebooks and other files should work just as if notebooks were regular HTML files.
MinRK
review pass on what's new in 2.0
r16147 Interactive widgets
*******************
MinRK
add what's new for 2.0
r16144
.. image:: /_images/2.0/widgets.png
:width: 392px
:alt: Interactive widgets
:align: center
MinRK
review pass on what's new in 2.0
r16147 IPython 2.0 adds :mod:`IPython.html.widgets`, for manipulating
Python objects in the kernel with GUI controls in the notebook.
IPython comes with a few built-in widgets for simple data types,
and an API designed for developers to build more complex widgets.
See the `widget docs`_ for more information.
MinRK
add what's new for 2.0
r16144
MinRK
review pass on what's new in 2.0
r16147 .. _widget docs: http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/examples/Interactive%20Widgets/Index.ipynb
Modal user interface
********************
The notebook has added separate Edit and Command modes,
allowing easier keyboard commands and making keyboard shortcut customization possible.
See the new `User Interface notebook`_ for more information.
.. _User Interface Notebook: http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/examples/Notebook/User%20Interface.ipynb
You can familiarize yourself with the updated notebook user interface, including an
explanation of Edit and Command modes, by going through the short guided tour
which can be started from the Help menu.
MinRK
add what's new for 2.0
r16144
.. image:: /_images/2.0/user-interface.png
:width: 392px
:alt: Interface tour
:align: center
MinRK
review pass on what's new in 2.0
r16147 Security
********
MinRK
add what's new for 2.0
r16144
MinRK
review pass on what's new in 2.0
r16147 2.0 introduces a :ref:`security model <notebook_security>` for notebooks,
to prevent untrusted code from executing on users' behalf when notebooks open.
A quick summary of the model:
MinRK
add what's new for 2.0
r16144
MinRK
review pass on what's new in 2.0
r16147 - Trust is determined by :ref:`signing notebooks<signing_notebooks>`.
- Untrusted HTML output is sanitized.
- Untrusted Javascript is never executed.
- HTML and Javascript in Markdown are never trusted.
MinRK
add what's new for 2.0
r16144
MinRK
review pass on what's new in 2.0
r16147 Dashboard "Running" tab
MinRK
add what's new for 2.0
r16144 ***********************
.. image:: /_images/2.0/running-crop.png
:width: 392px
:alt: Running tab
:align: center
The dashboard now has a "Running" tab which shows all of the running notebooks.
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`.
MinRK
review pass on what's new in 2.0
r16147 Selecting matplotlib figure formats
-----------------------------------
Deprecate single-format ``InlineBackend.figure_format``
configurable in favor of ``InlineBackend.figure_formats``,
which is a set, supporting multiple simultaneous figure formats (e.g. png, pdf).
This is available at runtime with the new API function :func:`IPython.display.set_matplotlib_formats`.
MinRK
add what's new for 2.0
r16144 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.
MinRK
review pass on what's new in 2.0
r16147 Extending configurable containers
MinRK
add what's new for 2.0
r16144 ---------------------------------
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) })
MinRK
review pass on what's new in 2.0
r16147 Changes to hidden namespace on startup
MinRK
add what's new for 2.0
r16144 --------------------------------------
Previously, all names declared in code run at startup
(startup files, ``ipython -i script.py``, etc.)
were added to the hidden namespace, which hides the names from tools like ``%whos``.
There are two changes to this behavior:
1. Scripts run on the command-line ``ipython -i script.py``now behave the same as if they were
passed to ``%run``, so their variables are never hidden.
2. A boolean config flag ``InteractiveShellApp.hide_initial_ns`` has been added to optionally
disable the hidden behavior altogether. The default behavior is unchanged.
Using dill to expand serialization support
------------------------------------------
Thomas Kluyver
Polish whatsnew docs
r16157 The new function :func:`~IPython.utils.pickleutil.use_dill` allows
MinRK
add what's new for 2.0
r16144 dill to extend serialization support in :mod:`IPython.parallel` (closures, etc.).
Thomas Kluyver
Polish whatsnew docs
r16157 A :meth:`DirectView.use_dill` convenience method was also added, to enable dill
MinRK
add what's new for 2.0
r16144 locally and on all engines with one call.
MinRK
review pass on what's new in 2.0
r16147 New IPython console lexer
MinRK
add what's new for 2.0
r16144 -------------------------
The IPython console lexer has been rewritten and now supports tracebacks
and customized input/output prompts. See the :ref:`new lexer docs <console_lexer>`
for details.
DisplayFormatter changes
------------------------
There was no official way to query or remove callbacks in the Formatter API.
To remedy this, the following methods are added to :class:`BaseFormatter`:
- ``lookup(instance)`` - return appropriate callback or a given object
- ``lookup_by_type(type_or_str)`` - return appropriate callback for a given type or ``'mod.name'`` type string
- ``pop(type_or_str)`` - remove a type (by type or string).
Pass a second argument to avoid KeyError (like dict).
All of the above methods raise a KeyError if no match is found.
And the following methods are changed:
- ``for_type(type_or_str)`` - behaves the same as before, only adding support for ``'mod.name'``
type strings in addition to plain types. This removes the need for ``for_type_by_name()``,
but it remains for backward compatibility.
Formatters can now raise NotImplementedError in addition to returning None
to indicate that they cannot format a given object.
Exceptions and Warnings
***********************
Exceptions are no longer silenced when formatters fail.
Thomas Kluyver
Polish whatsnew docs
r16157 Instead, these are turned into a :class:`~IPython.core.formatters.FormatterWarning`.
MinRK
add what's new for 2.0
r16144 A FormatterWarning will also be issued if a formatter returns data of an invalid type
(e.g. an integer for 'image/png').
Other changes
-------------
* `%%capture` cell magic now captures the rich display output, not just
stdout/stderr
* 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.
Thomas Kluyver
Polish whatsnew docs
r16157 * ``object_info_request`` has been replaced by ``object_info`` for consistency in the javascript API.
``object_info`` is a simpler interface to register callback that is incompatible with ``object_info_request``.
MinRK
add what's new for 2.0
r16144
* 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.
* IPython config objects can be loaded from and serialized to JSON.
JSON config file have the same base name as their ``.py`` counterpart,
and will be loaded with higher priority if found.
* bash completion updated with support for all ipython subcommands and flags, including nbconvert
* ``ipython history trim``: added ``--keep=<N>`` as an alias for the more verbose
``--HistoryTrim.keep=<N>``
Thomas Kluyver
Polish whatsnew docs
r16157 * New ``ipython history clear`` subcommand, which is the same as the newly supported
MinRK
add what's new for 2.0
r16144 ``ipython history trim --keep=0``
* You can now run notebooks in an interactive session via ``%run notebook.ipynb``.
* Print preview is back in the notebook menus, along with options to
download the open notebook in various formats. This is powered by
nbconvert.
* :exc:`~IPython.nbconvert.utils.pandoc.PandocMissing` exceptions will be
raised if Pandoc is unavailable, and warnings will be printed if the version
found is too old. The recommended Pandoc version for use with nbconvert is
1.12.1.
* The InlineBackend.figure_format now supports JPEG output if PIL/Pillow is available.
* Input transformers (see :doc:`/config/inputtransforms`) may now raise
:exc:`SyntaxError` if they determine that input is invalid. The input
transformation machinery in IPython will handle displaying the exception to
the user and resetting state.
* Calling ``container.show()`` on javascript display is deprecated and will
trigger errors on future IPython notebook versions. ``container`` now show
itself as soon as non-empty
* Added ``InlineBackend.print_figure_kwargs`` to allow passing keyword arguments
to matplotlib's ``Canvas.print_figure``. This can be used to change the value of
``bbox_inches``, which is 'tight' by default, or set the quality of JPEG figures.
* A new callback system has been introduced. For details, see :doc:`/config/callbacks`.
MinRK
review pass on what's new in 2.0
r16147 * jQuery and require.js are loaded from CDNs in the default HTML template,
so javascript is available in static HTML export (e.g. nbviewer).
MinRK
add what's new for 2.0
r16144 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
Thomas Kluyver
Polish whatsnew docs
r16157 their ``call`` methods have been renamed to ``preprocess``.
* The ``call`` methods of nbconvert post-processsors have been renamed to
``postprocess``.
MinRK
add what's new for 2.0
r16144
* 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 <http://pygments.org/>`_ project.
If you need to keep the exact output of :command:`pycolor`, you can still use
``python -m IPython.utils.PyColorize foo.py``.
* :mod:`IPython.lib.irunner` and its command-line entry point have been removed.
It had fallen out of use long ago.
* The ``input_prefilter`` hook has been removed, as it was never
actually used by the code. The input transformer system offers much
more powerful APIs to work with input code. See
:doc:`/config/inputtransforms` for details.
* :class:`IPython.core.inputsplitter.IPythonInputSplitter` no longer has a method
``source_raw_reset()``, but gains :meth:`~IPython.core.inputsplitter.IPythonInputSplitter.raw_reset`
instead. Use of ``source_raw_reset`` can be replaced with::
raw = isp.source_raw
transformed = isp.source_reset()
Thomas Kluyver
Polish whatsnew docs
r16157 * The Azure notebook manager was removed as it was no longer compatible with the notebook storage scheme.
MinRK
add what's new for 2.0
r16144
MinRK
review pass on what's new in 2.0
r16147 * Simplifying configurable URLs
MinRK
add what's new for 2.0
r16144
MinRK
review pass on what's new in 2.0
r16147 - base_project_url is renamed to base_url (base_project_url is kept as a deprecated alias, for now)
- base_kernel_url configurable is removed (use base_url)
- websocket_url configurable is removed (use base_url)