MCPcopy Create free account
hub / github.com/ipython/ipython / page_dumb

Function page_dumb

IPython/core/page.py:56–78  ·  view source on GitHub ↗

Very dumb 'pager' in Python, for when nothing else works. Only moves forward, same interface as page(), except for pager_cmd and mode.

(strng, start=0, screen_lines=25)

Source from the content-addressed store, hash-verified

54esc_re = re.compile(r"(\x1b[^m]+m)")
55
56def page_dumb(strng, start=0, screen_lines=25):
57 """Very dumb 'pager' in Python, for when nothing else works.
58
59 Only moves forward, same interface as page(), except for pager_cmd and
60 mode.
61 """
62 if isinstance(strng, dict):
63 strng = strng.get('text/plain', '')
64 out_ln = strng.splitlines()[start:]
65 screens = chop(out_ln,screen_lines-1)
66 if len(screens) == 1:
67 print(os.linesep.join(screens[0]))
68 else:
69 last_escape = ""
70 for scr in screens[0:-1]:
71 hunk = os.linesep.join(scr)
72 print(last_escape + hunk)
73 if not page_more():
74 return
75 esc_list = esc_re.findall(hunk)
76 if len(esc_list) > 0:
77 last_escape = esc_list[-1]
78 print(last_escape + os.linesep.join(screens[-1]))
79
80def _detect_screen_size(screen_lines_def):
81 """Attempt to work out the number of lines on the screen.

Callers 1

pager_pageFunction · 0.85

Calls 2

chopFunction · 0.90
page_moreFunction · 0.85

Tested by

no test coverage detected