payloadpage.py
52 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
Brian Granger
|
r2830 | # encoding: utf-8 | ||
MinRK
|
r16586 | """A payload based version of page.""" | ||
Brian Granger
|
r2830 | |||
MinRK
|
r16586 | # Copyright (c) IPython Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||||
Brian Granger
|
r2830 | |||
Min RK
|
r19387 | import warnings | ||
MinRK
|
r16586 | from IPython.core.getipython import get_ipython | ||
Brian Granger
|
r2830 | |||
MinRK
|
r16586 | def page(strng, start=0, screen_lines=0, pager_cmd=None): | ||
Brian Granger
|
r2830 | """Print a string, piping through a pager. | ||
This version ignores the screen_lines and pager_cmd arguments and uses | ||||
IPython's payload system instead. | ||||
Fernando Perez
|
r3011 | |||
Parameters | ||||
---------- | ||||
MinRK
|
r16586 | strng : str or mime-dict | ||
Text to page, or a mime-type keyed dict of already formatted data. | ||||
Fernando Perez
|
r3011 | |||
start : int | ||||
Starting line at which to place the display. | ||||
Brian Granger
|
r2830 | """ | ||
# Some routines may auto-compute start offsets incorrectly and pass a | ||||
# negative value. Offset to 0 for robustness. | ||||
start = max(0, start) | ||||
MinRK
|
r16586 | shell = get_ipython() | ||
if isinstance(strng, dict): | ||||
data = strng | ||||
else: | ||||
data = {'text/plain' : strng} | ||||
Brian Granger
|
r2830 | payload = dict( | ||
MinRK
|
r11839 | source='page', | ||
MinRK
|
r16586 | data=data, | ||
start=start, | ||||
Fernando Perez
|
r3011 | ) | ||
Brian Granger
|
r2830 | shell.payload_manager.write_payload(payload) | ||
Fernando Perez
|
r3011 | |||
Brian Granger
|
r2830 | def install_payload_page(): | ||
Min RK
|
r19387 | """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))` | ||||
""") | ||||
Brian Granger
|
r2830 | from IPython.core import page as corepage | ||
corepage.page = page | ||||