# 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 | |