##// END OF EJS Templates
Statically type OInfo....
Statically type OInfo. In view of working with #13860, some cleanup inspect to be properly typed, and using stricter datastructure. Instead of dict we now use dataclasses, this will make sure that fields type and access can be stricter and verified not only at runtime, but by mypy

File last commit:

r27288:33f5b346
r28165:0fef298a
Show More
payloadpage.py
51 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
Min RK
add InteractiveShell.display_page config...
r19387 import warnings
MinRK
pager payload is a mime-bundle
r16586 from IPython.core.getipython import get_ipython
Brian Granger
Paging using payloads now works.
r2830
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
Matthias Bussonnier
some docstring reformatting and fixing
r27288 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
Matthias Bussonnier
some docstring reformatting and fixing
r27288 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,
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():
Min RK
add InteractiveShell.display_page config...
r19387 """DEPRECATED, use show_in_pager hook
Matthias Bussonnier
some docstring reformatting and fixing
r27288
Min RK
add InteractiveShell.display_page config...
r19387 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
Paging using payloads now works.
r2830 from IPython.core import page as corepage
corepage.page = page