===================== 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 `_.