|
|
=====================
|
|
|
Development version
|
|
|
=====================
|
|
|
|
|
|
This document describes in-flight development work.
|
|
|
|
|
|
The CodeMirror js library has been updated fron 2.23 to 2.32
|
|
|
this might induce a few changes in behavior of keymaps in the notebook,
|
|
|
especially intenting/deindenting blocks that is now bound to Ctrl+] and ctr+[
|
|
|
|
|
|
* Exception types can now be displayed with a custom traceback, by defining a
|
|
|
``_render_traceback_()`` method which returns a list of strings, each
|
|
|
containing one line of the traceback.
|
|
|
* A new command, ``ipython history trim`` can be used to delete everything but
|
|
|
the last 1000 entries in the history database.
|
|
|
* The input transformation framework has been reworked. This fixes some corner
|
|
|
cases, and adds more flexibility for projects which use IPython, like SymPy &
|
|
|
SAGE. For more details, see :doc:`/config/inputtransforms`.
|
|
|
|
|
|
|
|
|
In-process kernels
|
|
|
------------------
|
|
|
|
|
|
The Python-language frontends, particularly the Qt console, may now communicate
|
|
|
with in-process kernels, in addition to the traditional out-of-process
|
|
|
kernels. An in-process kernel permits direct access to the kernel namespace,
|
|
|
which is necessary in some applications. It should be understood, however, that
|
|
|
the in-process kernel is not robust to bad user input and will block the main
|
|
|
(GUI) thread while executing. Developers must decide on a case-by-case basis
|
|
|
whether this tradeoff is appropriate for their application.
|
|
|
|
|
|
Backwards incompatible changes
|
|
|
------------------------------
|
|
|
|
|
|
* Calling :meth:`InteractiveShell.prefilter` will no longer perform static
|
|
|
transformations - the processing of escaped commands such as ``%magic`` and
|
|
|
``!system``, and stripping input prompts from code blocks. This functionality
|
|
|
was duplicated in :mod:`IPython.core.inputsplitter`, and the latter version
|
|
|
was already what IPython relied on. A new API to transform input will be ready
|
|
|
before release.
|
|
|
* Functions from :mod:`IPython.lib.inputhook` to control integration with GUI
|
|
|
event loops are no longer exposed in the top level of :mod:`IPython.lib`.
|
|
|
Code calling these should make sure to import them from
|
|
|
:mod:`IPython.lib.inputhook`.
|
|
|
* For all kernel managers, the ``sub_channel`` attribute has been renamed to
|
|
|
``iopub_channel``.
|
|
|
* Users on Python versions before 2.6.6, 2.7.1 or 3.2 will now need to call
|
|
|
:func:`IPython.utils.doctestreload.doctest_reload` to make doctests run
|
|
|
correctly inside IPython. Python releases since those versions are unaffected.
|
|
|
For details, see :ghpull:`3068` and `Python issue 8048 <http://bugs.python.org/issue8048>`_.
|
|
|
* The ``InteractiveShell.cache_main_mod()`` method has been removed, and
|
|
|
:meth:`~IPython.core.interactiveshell.InteractiveShell.new_main_mod` has a
|
|
|
different signature, expecting a filename where earlier versions expected
|
|
|
a namespace. See :ghpull:`3555` for details.
|
|
|
|