##// END OF EJS Templates
Provide hooks for arbitrary mimetypes handling....
Provide hooks for arbitrary mimetypes handling. This should allow at some point inline images, an math in the terminal.

File last commit:

r22913:da5a98f8
r25164:cbfdf70d
Show More
__init__.py
49 lines | 1.1 KiB | text/x-python | PythonLexer
Thomas Kluyver
Write & borrow some inputhooks for prompt_toolkit
r21934 import importlib
import os
aliases = {
Thomas Kluyver
Add prompt_toolkit input hooks for wx
r21941 'qt4': 'qt',
Thomas Kluyver
Better error message for unknown input hook...
r22118 'gtk2': 'gtk',
Thomas Kluyver
Write & borrow some inputhooks for prompt_toolkit
r21934 }
Thomas Kluyver
Better error message for unknown input hook...
r22118 backends = [
'qt', 'qt4', 'qt5',
'gtk', 'gtk2', 'gtk3',
'tk',
'wx',
'pyglet', 'glut',
Min RK
Add OS X input hook...
r22159 'osx',
Thomas Kluyver
Better error message for unknown input hook...
r22118 ]
Thomas Kluyver
Update docs and add registration interface for inputhooks
r22613 registered = {}
def register(name, inputhook):
"""Register the function *inputhook* as an event loop integration."""
registered[name] = inputhook
Thomas Kluyver
Better error message for unknown input hook...
r22118 class UnknownBackend(KeyError):
def __init__(self, name):
self.name = name
def __str__(self):
return ("No event loop integration for {!r}. "
"Supported event loops are: {}").format(self.name,
Thomas Kluyver
Update docs and add registration interface for inputhooks
r22613 ', '.join(backends + sorted(registered)))
Thomas Kluyver
Better error message for unknown input hook...
r22118
Thomas Kluyver
Let IPython.lib.guisupport detect terminal-integrated event loops...
r22913 def get_inputhook_name_and_func(gui):
Thomas Kluyver
Update docs and add registration interface for inputhooks
r22613 if gui in registered:
Thomas Kluyver
Let IPython.lib.guisupport detect terminal-integrated event loops...
r22913 return gui, registered[gui]
Thomas Kluyver
Update docs and add registration interface for inputhooks
r22613
Thomas Kluyver
Better error message for unknown input hook...
r22118 if gui not in backends:
raise UnknownBackend(gui)
Thomas Kluyver
Write & borrow some inputhooks for prompt_toolkit
r21934 if gui in aliases:
Thomas Kluyver
Let IPython.lib.guisupport detect terminal-integrated event loops...
r22913 return get_inputhook_name_and_func(aliases[gui])
Thomas Kluyver
Write & borrow some inputhooks for prompt_toolkit
r21934
Thomas Kluyver
Let IPython.lib.guisupport detect terminal-integrated event loops...
r22913 gui_mod = gui
Thomas Kluyver
Write & borrow some inputhooks for prompt_toolkit
r21934 if gui == 'qt5':
os.environ['QT_API'] = 'pyqt5'
Thomas Kluyver
Let IPython.lib.guisupport detect terminal-integrated event loops...
r22913 gui_mod = 'qt'
Thomas Kluyver
Write & borrow some inputhooks for prompt_toolkit
r21934
Thomas Kluyver
Let IPython.lib.guisupport detect terminal-integrated event loops...
r22913 mod = importlib.import_module('IPython.terminal.pt_inputhooks.'+gui_mod)
return gui, mod.inputhook