##// END OF EJS Templates
Let keyboard interrupt stop custom dispatch of completer....
Let keyboard interrupt stop custom dispatch of completer. See #10733, interruption during custom completer can crash the kernel. Technically we should likely even protect normal completion (like jedi taking a while), but let's get something that fix an actual bug. This can lead to some inconsistencies in the frontend, as you interrupt the kernel in Command mode, and interrupting the current custom completer will lead to normal completion being (still) returned and the completer poping up in command mode. It's not optimal but at least we do not loose user state.

File last commit:

r23398:f33ca742
r23921:d58a6ec2
Show More
frontend.py
29 lines | 1.1 KiB | text/x-python | PythonLexer
"""
Shim to maintain backwards compatibility with old frontend imports.
We have moved all contents of the old `frontend` subpackage into top-level
subpackages (`html`, `qt` and `terminal`), and flattened the notebook into
just `IPython.html`, formerly `IPython.frontend.html.notebook`.
This will let code that was making `from IPython.frontend...` calls continue
working, though a warning will be printed.
"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import sys
from warnings import warn
from IPython.utils.shimmodule import ShimModule, ShimWarning
warn("The top-level `frontend` package has been deprecated since IPython 1.0. "
"All its subpackages have been moved to the top `IPython` level.", ShimWarning)
# Unconditionally insert the shim into sys.modules so that further import calls
# trigger the custom attribute access above
sys.modules['IPython.frontend.html.notebook'] = ShimModule(
src='IPython.frontend.html.notebook', mirror='IPython.html')
sys.modules['IPython.frontend'] = ShimModule(
src='IPython.frontend', mirror='IPython')