- merged IPKernelApp into KernelApp, they are no longer separate classes
- embed_kernel moved to its own file
- ipkernel now only contains the Kernel class
- associated imports updated
future pyzmq compatibility
update base pyzmq version to 2.1.11
removes MockSocket to avoid compatibility issues with various versions of Python+PyZMQ in test_session.
Consolidate host IP detection in utils.localinterfaces
This PR replaces a number of hard-coded 127.0.0.1 references with
LOCALHOST, and consolidates the computation of LOCALHOST,
LOCAL_IPS, and a new PUBLIC_IPS in the localinterfaces module.
It's unclear to me when LOCALHOST would not be 127.0.0.1. I suppose
you could have another IP in the 127.0.0.0/8 block, or a IPv6 address.
It may also be possible to not have a loopback interface at all. In
that case it's possible that we need a LOOPBACK variable in
utils.localinterfaces which is a valid loopback interface or None, so
that consumers can differentiate between generic IPs pointing back to
the local host and the loopback interface.
Still more KernelManager cleanup
Finish up some more work from #2775closes#2722
- [x] ip/transport configurables only live on KernelManager objects, not ConsoleApp
- [x] fix default ipc paths in `ipython kernel` and `ipython notebook` cases
- [x] fix ipc file cleanup in a few more cases
- [x] add `--transport` alias for all appropriate entry points
Organize example notebooks
- Some refactor and reorganization of notebooks
- examples moved to top-level examples dir, out of docs
- py3compat along the way
closes#2622
General cleanup of kernel manager code.
This does some general cleanup of MultiKernelManager to better reflect how it is actually being used.
Sometimes there is a need to create kernel_id's elsewhere in code. This minor change allows a kernel_id to be created outside of the MultiKernelManager and passed in as a kwarg. An exception is raised if the id is already used.
Tasks:
- [x] Fix cleanup of ipc files.
- [x] Allow kernel_id to be passed to MultiKernelManager.start_kernel.
- [x] Add ipc support to MultiKernelManager.
- [x] Add more tests for MultiKernelManager.
- [x] Rename sub channel to iopub channel everywhere.
- [x] Use consistent naming for all channel classes in zmq, inprocess and qt.
- [x] Move BlockingChannelMixin to zmq.blockingkernelmanager.
- [x] Create ABC for KernelManager.
- [x] Make the InProcessKernelManager a Configurable.
- [x] Cleanup docstrings in ABCs.
- [x] Add tests for KernelManager.
- [x] Check over MultiKernelManager.
- [x] Make KernelManager,kill_kernel private in ABC and implementations.
- [x] Find bug that is causing the kernel manager tests to hang unless the shell channel linger is set to 0.
- [x] Decide about critical logging in ipkernel.
- [x] Debug lack of stderr redirect in tests.
The select menu for celltoolbar presets should live entirely in
the maintoolbar code - it was 1/2 in CellToolbar itself. This
fixes this issue using events and an additional method on
CellToolbar (list_presets).
The kernel_id is *always* the same under a restart and there
is no need to return it. The restart handler does pass
the original kernel_id back to the browser as it currently uses it.