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 (
356
) - Fix classifiers to indicate dropped Python 2 support (
354
) - Remove some dead code (
355
) - Support rich-media responses in
inspect_requests
(tooltips) (361
)
- Drop support for Python 2.
ipykernel
5.0 requires Python >= 3.4 - Add support for IPython's asynchronous code execution (
323
) - Update release process in
CONTRIBUTING.md
(339
)
- Fix compatibility with IPython 7.0 (
348
) - Fix compatibility in cases where sys.stdout can be None (
344
)
- Python 3.3 is no longer supported (
336
) - Flush stdout/stderr in KernelApp before replacing (
314
) - Allow preserving stdout and stderr in KernelApp (
315
) - Override writable method on OutStream (
316
) - Add metadata to help display matplotlib figures legibly (
336
)
- Fix compatibility issue with qt eventloop and pyzmq 17 (
307
).
- set zmq.ROUTER_HANDOVER socket option when available to workaround libzmq reconnect bug (
300
). - Fix sdists including absolute paths for kernelspec files, which prevented installation from sdist on Windows (
306
).
- Cleanly shutdown integrated event loops when shutting down the kernel. (
290
) %gui qt
now uses Qt 5 by default rather than Qt 4, following a similar change in terminal IPython. (293
)- Fix event loop integration for
asyncio
when run with Tornado 5, which uses asyncio where available. (296
)
- Add event loop integration for
asyncio
. - Use the new IPython completer API.
- Add support for displaying GIF images (mimetype
image/gif
). - Allow the kernel to be interrupted without killing the Qt console.
- Fix
is_complete
response with cell magics. - Clean up encoding of bytes objects.
- Clean up help links to use
https
and 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
- Various bugfixes
- Fix bug when instantiating Comms outside of the IPython kernel (introduced in 4.5.1).
- Add missing
stream
parameter to overriddengetpass
- 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
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, so setting
MPLBACKEND=Qt4Agg
or calling%matplotlib notebook
ormatplotlib.use('Agg')
will take precedence. - Fixes for logging problems caused by 4.3, where logging could go to the terminal instead of the notebook.
- Add
--sys-prefix
and--profile
arguments toipython kernel install
- Allow Comm (Widget) messages to be sent from background threads.
- Select inline matplotlib backend by default if
%matplotlib
magic ormatplotlib.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
IOPubThread
. This solves the problem of requiringsys.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 forwardedsys.stderr
, which has no fileno when forwarded. - Deprecate some vestiges of the Big Split:
ipykernel.find_connection_file
is deprecated. Usejupyter_client.find_connection_file
instead.
- 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 --name
to install the IPython kernelspec, default display-name to the same value as--name
.
- Fix missing
ipykernel.__version__
on Python 2. - Fix missing
target_name
when opening comms from the frontend.
- add
ipython kernel install
entrypoint for installing the IPython kernelspec - provisional implementation of
comm_info
request/reply for msgspec v5.1
4.0 is the first release of ipykernel as a standalone package.