##// END OF EJS Templates
Move most readline code from InteractiveShell to terminal subclass...
Move most readline code from InteractiveShell to terminal subclass This is the first stage of my effort to use prompt_toolkit for the terminal interface. My plan is to create a new subclass of InteractiveShell which deals with the terminal using prompt_toolkit instead of readline. To facilitate this, I am first trying to separate as much of the readline code as possible out of InteractiveShell to the TerminalInteractiveShell subclass (I don't intend the new subclass to inherit from TIS). I haven't moved any of the config options relating to readline yet, because moving them will break some people's existing config files. But if we're switching to prompt_toolkit by default, readline related config is going to be broken anyway.

File last commit:

r19387:c0ca9867
r21846:5f823782
Show More
payloadpage.py
52 lines | 1.4 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""A payload based version of page."""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import warnings
from IPython.core.getipython import get_ipython
def page(strng, start=0, screen_lines=0, pager_cmd=None):
"""Print a string, piping through a pager.
This version ignores the screen_lines and pager_cmd arguments and uses
IPython's payload system instead.
Parameters
----------
strng : str or mime-dict
Text to page, or a mime-type keyed dict of already formatted data.
start : int
Starting line at which to place the display.
"""
# Some routines may auto-compute start offsets incorrectly and pass a
# negative value. Offset to 0 for robustness.
start = max(0, start)
shell = get_ipython()
if isinstance(strng, dict):
data = strng
else:
data = {'text/plain' : strng}
payload = dict(
source='page',
data=data,
start=start,
)
shell.payload_manager.write_payload(payload)
def install_payload_page():
"""DEPRECATED, use show_in_pager hook
Install this version of page as IPython.core.page.page.
"""
warnings.warn("""install_payload_page is deprecated.
Use `ip.set_hook('show_in_pager, page.as_hook(payloadpage.page))`
""")
from IPython.core import page as corepage
corepage.page = page