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