##// END OF EJS Templates
Refuse to install event loop hooks when not using `prompt_toolkit` (#14132)...
Refuse to install event loop hooks when not using `prompt_toolkit` (#14132) Without this, `%gui` is effectively a no-op but the user thinks it works. For example. If running `ipython`: ``` In [1]: import matplotlib; matplotlib.use('QtAgg'); from matplotlib import pyplot; pyplot.ion(); pyplot.plot([1, 2, 3, 4]) Installed qt6 event loop hook. Out[1]: [<matplotlib.lines.Line2D at 0x1ba2f59d2a0>] ``` The window appears and responds as expected. If running `ipython --simple-prompt`, the user would see the same output, when in fact no event loop hook was installed since it's not supported without `prompt_toolkit`. The resulting Qt window is unresponsive because the event loop is not running, i.e. with `--simple-prompt`, Qt windows should block (but `pyplot` doesn't/can't know to do that) With this PR, the user will see: ``` In [1]: import matplotlib; matplotlib.use('QtAgg'); from matplotlib import pyplot; pyplot.ion(); pyplot.plot([1, 2, 3, 4]) Cannot install event loop hook for "qt" when running with `--simple-prompt`. NOTE: Tk is supported natively; use Tk apps and Tk backends with `--simple-prompt`. Out[1]: [<matplotlib.lines.Line2D at 0x170be0c0310>] ``` They'll still get an unresponsive Qt window, but they'll at least be told this can't work (while anything using Tk will work just fine).
Matthias Bussonnier -
r28368:22fc5ab5 merge
Show More
Name Size Modified Last Commit Author
/ IPython / core / tests
daft_extension
2x2.jpg Loading ...
2x2.png Loading ...
__init__.py Loading ...
bad_all.py Loading ...
nonascii.py Loading ...
nonascii2.py Loading ...
print_argv.py Loading ...
refbug.py Loading ...
simpleerr.py Loading ...
tclass.py Loading ...
test_alias.py Loading ...
test_application.py Loading ...
test_async_helpers.py Loading ...
test_autocall.py Loading ...
test_compilerop.py Loading ...
test_completer.py Loading ...
test_completerlib.py Loading ...
test_debugger.py Loading ...
test_display.py Loading ...
test_displayhook.py Loading ...
test_events.py Loading ...
test_exceptiongroup_tb.py Loading ...
test_extension.py Loading ...
test_formatters.py Loading ...
test_guarded_eval.py Loading ...
test_handlers.py Loading ...
test_history.py Loading ...
test_hooks.py Loading ...
test_imports.py Loading ...
test_inputsplitter.py Loading ...
test_inputtransformer.py Loading ...
test_inputtransformer2.py Loading ...
test_inputtransformer2_line.py Loading ...
test_interactiveshell.py Loading ...
test_iplib.py Loading ...
test_logger.py Loading ...
test_magic.py Loading ...
test_magic_arguments.py Loading ...
test_magic_terminal.py Loading ...
test_oinspect.py Loading ...
test_page.py Loading ...
test_paths.py Loading ...
test_prefilter.py Loading ...
test_profile.py Loading ...
test_prompts.py Loading ...
test_pylabtools.py Loading ...
test_run.py Loading ...
test_shellapp.py Loading ...
test_splitinput.py Loading ...
test_ultratb.py Loading ...