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