Changes in IPython kernel
5.1.0 fixes some important regressions in 5.0, especially on Windows.
- Fix message-ordering bug that could result in out-of-order executions, especially on Windows (:ghpull:`356`)
- Fix classifiers to indicate dropped Python 2 support (:ghpull:`354`)
- Remove some dead code (:ghpull:`355`)
- Support rich-media responses in
- Drop support for Python 2.
ipykernel5.0 requires Python >= 3.4
- Add support for IPython's asynchronous code execution (:ghpull:`323`)
- Update release process in
- Fix compatibility with IPython 7.0 (:ghpull:`348`)
- Fix compatibility in cases where sys.stdout can be None (:ghpull:`344`)
- Python 3.3 is no longer supported (:ghpull:`336`)
- Flush stdout/stderr in KernelApp before replacing (:ghpull:`314`)
- Allow preserving stdout and stderr in KernelApp (:ghpull:`315`)
- Override writable method on OutStream (:ghpull:`316`)
- Add metadata to help display matplotlib figures legibly (:ghpull:`336`)
- Fix compatibility issue with qt eventloop and pyzmq 17 (:ghpull:`307`).
- set zmq.ROUTER_HANDOVER socket option when available to workaround libzmq reconnect bug (:ghpull:`300`).
- Fix sdists including absolute paths for kernelspec files, which prevented installation from sdist on Windows (:ghpull:`306`).
- Cleanly shutdown integrated event loops when shutting down the kernel. (:ghpull:`290`)
%gui qtnow uses Qt 5 by default rather than Qt 4, following a similar change in terminal IPython. (:ghpull:`293`)
- Fix event loop integration for :mod:`asyncio` when run with Tornado 5, which uses asyncio where available. (:ghpull:`296`)
- Add event loop integration for :mod:`asyncio`.
- Use the new IPython completer API.
- Add support for displaying GIF images (mimetype
- Allow the kernel to be interrupted without killing the Qt console.
is_completeresponse with cell magics.
- Clean up encoding of bytes objects.
- Clean up help links to use
httpsand improve display titles.
- Clean up ioloop handling in preparation for tornado 5.
- Fix eventloop-integration bug preventing Qt windows/widgets from displaying with ipykernel 4.6.0 and IPython ≥ 5.2.
- Avoid deprecation warnings about naive datetimes when working with jupyter_client ≥ 5.0.
Add to API DisplayPublisher.publish two new fully backward-compatible keyword-args:
- update: bool
- transient: dict
Support new transient key in display_data messages spec for publish. For a display data message, transient contains data that shouldn't be persisted to files or documents. Add a display_id to this transient dict by display(obj, display_id=...)
Add ipykernel_launcher module which removes the current working directory from sys.path before launching the kernel. This helps to reduce the cases where the kernel won't start because there's a random.py (or similar) module in the current working directory.
Add busy/idle messages on IOPub during processing of aborted requests
Add active event loop setting to GUI, which enables the correct response to IPython's is_event_loop_running_xxx
Include IPython kernelspec in wheels to reduce reliance on "native kernel spec" in jupyter_client
Modify OutStream to inherit from TextIOBase instead of object to improve API support and error reporting
Fix IPython kernel death messages at start, such as "Kernel Restarting..." and "Kernel appears to have died", when parent-poller handles PID 1
- Fix bug when instantiating Comms outside of the IPython kernel (introduced in 4.5.1).
- Add missing
streamparameter to overridden :func:`getpass`
- Remove locks from iopub thread, which could cause deadlocks during debugging
- Fix regression where KeyboardInterrupt was treated as an aborted request, rather than an error
- Allow instantiating Comms outside of the IPython kernel
- Use figure.dpi instead of savefig.dpi to set DPI for inline figures
- Support ipympl matplotlib backend (requires IPython update as well to fully work)
- Various bugfixes, including fixes for output coming from threads, and :func:`input` when called with non-string prompts, which stdlib allows.
- Fix circular import of matplotlib on Python 2 caused by the inline backend changes in 4.4.0.
- Use MPLBACKEND environment variable to tell matplotlib >= 1.5 use use the inline backend by default.
This is only done if MPLBACKEND is not already set and no backend has been explicitly loaded,
matplotlib.use('Agg')will take precedence.
- Fixes for logging problems caused by 4.3, where logging could go to the terminal instead of the notebook.
--profilearguments to :command:`ipython kernel install`
- Allow Comm (Widget) messages to be sent from background threads.
- Select inline matplotlib backend by default if
matplotlib.use()are not called explicitly (for matplotlib >= 1.5).
- Fix some longstanding minor deviations from the message protocol (missing status: ok in a few replies, connect_reply format).
- Remove calls to NoOpContext from IPython, deprecated in 5.0.
- Use a nonempty dummy session key for inprocess kernels to avoid security warnings.
- Fix Windows Python 3.5 incompatibility caused by faulthandler patch in 4.3
- Publish all IO in a thread, via :class:`IOPubThread`. This solves the problem of requiring :meth:`sys.stdout.flush` to be called in the notebook to produce output promptly during long-running cells.
- Remove references to outdated IPython guiref in kernel banner.
- Patch faulthandler to use
sys.__stderr__instead of forwarded
sys.stderr, which has no fileno when forwarded.
- Deprecate some vestiges of the Big Split: - :func:`ipykernel.find_connection_file` is deprecated. Use :func:`jupyter_client.find_connection_file` instead. - Various pieces of code specific to IPython parallel are deprecated in ipykernel and moved to ipyparallel.
- Don't show interactive debugging info when kernel crashes
- Fix handling of numerical types in json_clean
- Testing fixes for output capturing
- Fix default display name back to "Python X" instead of "pythonX"
- Support sending a full message in initial opening of comms (metadata, buffers were not previously allowed)
- When using
ipython kernel install --nameto install the IPython kernelspec, default display-name to the same value as
- Fix missing
ipykernel.__version__on Python 2.
- Fix missing
target_namewhen opening comms from the frontend.
ipython kernel installentrypoint for installing the IPython kernelspec
- provisional implementation of
comm_inforequest/reply for msgspec v5.1
4.0 is the first release of ipykernel as a standalone package.