aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/ipython/py2/IPython/core/payloadpage.py
blob: 43ac441631a1525319de2151820254c2d1c0382d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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