##// END OF EJS Templates
only check for formatters on instances...
only check for formatters on instances use inspect.isclass to disallow unbound methods, not type checking on the method itself

File last commit:

r17993:bb8d9aa9
r19026:7658e7aa
Show More
payloadpage.py
49 lines | 1.4 KiB | text/x-python | PythonLexer
Brian Granger
Paging using payloads now works.
r2830 # encoding: utf-8
MinRK
pager payload is a mime-bundle
r16586 """A payload based version of page."""
Brian Granger
Paging using payloads now works.
r2830
MinRK
pager payload is a mime-bundle
r16586 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Brian Granger
Paging using payloads now works.
r2830
MinRK
pager payload is a mime-bundle
r16586 from IPython.core.getipython import get_ipython
Brian Granger
Paging using payloads now works.
r2830
#-----------------------------------------------------------------------------
# Classes and functions
#-----------------------------------------------------------------------------
MinRK
pager payload is a mime-bundle
r16586 def page(strng, start=0, screen_lines=0, pager_cmd=None):
Brian Granger
Paging using payloads now works.
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
Provide html support for page() in the payload version....
r3011
Parameters
----------
MinRK
pager payload is a mime-bundle
r16586 strng : str or mime-dict
Text to page, or a mime-type keyed dict of already formatted data.
Fernando Perez
Provide html support for page() in the payload version....
r3011
start : int
Starting line at which to place the display.
Brian Granger
Paging using payloads now works.
r2830 """
# Some routines may auto-compute start offsets incorrectly and pass a
# negative value. Offset to 0 for robustness.
start = max(0, start)
MinRK
pager payload is a mime-bundle
r16586 shell = get_ipython()
if isinstance(strng, dict):
data = strng
else:
data = {'text/plain' : strng}
Brian Granger
Paging using payloads now works.
r2830 payload = dict(
MinRK
update payload source...
r11839 source='page',
MinRK
pager payload is a mime-bundle
r16586 data=data,
start=start,
screen_lines=screen_lines,
Fernando Perez
Provide html support for page() in the payload version....
r3011 )
Brian Granger
Paging using payloads now works.
r2830 shell.payload_manager.write_payload(payload)
Fernando Perez
Provide html support for page() in the payload version....
r3011
Brian Granger
Paging using payloads now works.
r2830 def install_payload_page():
"""Install this version of page as IPython.core.page.page."""
from IPython.core import page as corepage
corepage.page = page