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.
This add a per-cell globally toggleable toolbar
the main purpouse is to easily edit metadata.
this come with a few example like adding checkbox,
dropdown list, simple button, button with icon...
please see the js-doc of
IPython/frontend/html/notebook/static/js/MetaUI.js
for more info
also bind shift tab for tooltip + config
This does not change the curent behavior, only add the shift+tab shortcut.
Note that the shift tab shortcut has a slightly different behavior. You can select part of a line and pressing shift-tab will show you the tooltip only for the selection.
This is disabled for multiline selection to still allow to unindent block of code, Keep in mind that the real real shortcut for indent unindent is Ctrl+] or [ . Select/tab is not really supported by codemirror.
Finally the "tooltip_on_tab" behavior is globally configurable via IPython.config so that it could be easily switched to false.
It can be overridden via js console for test purpose.
IPython.config.tooltip_on_tab = true | false
Take effect immediately, only on current notebook.
or globally via custom.js
var user_conf = {tooltip_on_tab:false | true};
$.extend(IPython.config, user_conf)
diverse fixes for project url
- Force leading and trailing slashes in base_project/kernel_url
- Add support for the prefix in template for static files
- Fix some forgotten quotes
- remove old make_static_url which is now a jinja2 macro
* Force leading and trailing slashes in base_project/kernel_url
* Add support for the prefix in template for static files
* Fix some forgotten quotes
* remove old make_static_url which is now a jinja2 macro
fixes-2720
Destructive paste mapped to Ctrl-M V is a surprising choice given that
there was no drag-to-select on the area being replaced (there is a
weaker notion of "selected cell" but this does not map to will-be-replaced-
by-paste in the minds of participants in an unscientific poll at
PyConCA).
Destructive paste is still available as the last paste option in the
Edit menu, qualified as "Paste Cell Replace".
I've accidentally deleted the wrong cell quite a few times and
it has been quite frustrating. This enables a very hacky backup of
the last cell deletion.
I'm sure the core devs will have some opinions on both the feature
and its implementation, I consider this very much a first pass.