MCPcopy Index your code
hub / github.com/python/cpython / get_pager

Function get_pager

Lib/_pyrepl/pager.py:17–53  ·  view source on GitHub ↗

Decide what method to use for paging through text.

()

Source from the content-addressed store, hash-verified

15
16
17def get_pager() -> Pager:
18 """Decide what method to use for paging through text."""
19 if not hasattr(sys.stdin, "isatty"):
20 return plain_pager
21 if not hasattr(sys.stdout, "isatty"):
22 return plain_pager
23 if not sys.stdin.isatty() or not sys.stdout.isatty():
24 return plain_pager
25 if sys.platform == "emscripten":
26 return plain_pager
27 use_pager = os.environ.get('MANPAGER') or os.environ.get('PAGER')
28 if use_pager:
29 if sys.platform == 'win32': # pipes completely broken in Windows
30 return lambda text, title='': tempfile_pager(plain(text), use_pager)
31 elif os.environ.get('TERM') in ('dumb', 'emacs'):
32 return lambda text, title='': pipe_pager(plain(text), use_pager, title)
33 else:
34 return lambda text, title='': pipe_pager(text, use_pager, title)
35 if os.environ.get('TERM') in ('dumb', 'emacs'):
36 return plain_pager
37 if sys.platform == 'win32':
38 return lambda text, title='': tempfile_pager(plain(text), 'more <')
39 if hasattr(os, 'system') and os.system('(pager) 2>/dev/null') == 0:
40 return lambda text, title='': pipe_pager(text, 'pager', title)
41 if hasattr(os, 'system') and os.system('(less) 2>/dev/null') == 0:
42 return lambda text, title='': pipe_pager(text, 'less', title)
43
44 import tempfile
45 (fd, filename) = tempfile.mkstemp()
46 os.close(fd)
47 try:
48 if hasattr(os, 'system') and os.system('more "%s"' % filename) == 0:
49 return lambda text, title='': pipe_pager(text, 'more', title)
50 else:
51 return tty_pager
52 finally:
53 os.unlink(filename)
54
55
56def escape_stdout(text: str) -> str:

Callers 2

pagerFunction · 0.90
doMethod · 0.70

Calls 7

tempfile_pagerFunction · 0.85
pipe_pagerFunction · 0.85
plainFunction · 0.70
isattyMethod · 0.45
getMethod · 0.45
closeMethod · 0.45
unlinkMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…