def page(self, text): """ Print text by pages """ cmd = hdtv.options.Get("ui.pager.cmd") args = hdtv.options.Get("ui.pager.args") pydoc.tempfilepager(text, str(cmd) + " " + str(args))
def page(self, html, end='\n'): """ Print text by pages """ # TODO: Convert HTML to ANSI? if not hdtv.options.Get("ui.pager.builtin"): cmd = hdtv.options.Get("ui.pager.cmd") args = hdtv.options.Get("ui.pager.args") pydoc.tempfilepager(html, str(cmd) + " " + str(args)) else: self.pager(html, end)
def test_tempfilepager(self): # tempfilepager does not choke on unicode doc = pydoc.render_doc(self.Q) output = {} def mock_system(cmd): filename = cmd.strip()[1:-1] self.assertEqual('"' + filename + '"', cmd.strip()) output['content'] = open(filename).read() saved, os.system = os.system, mock_system try: pydoc.tempfilepager(doc, '') self.assertEqual(output['content'], pydoc._encode(doc)) finally: os.system = saved
def test_tempfilepager(self): # tempfilepager does not choke on unicode doc = pydoc.render_doc(self.Q) output = {} def mock_system(cmd): filename = cmd.strip()[1:-1] self.assertEqual('"' + filename + '"', cmd.strip()) output['content'] = open(filename).read() saved, os.system = os.system, mock_system try: pydoc.tempfilepager(doc, '') self.assertEqual(output['content'], pydoc._encode(doc)) finally: os.system = saved
def getpager(): """Decide what method to use for paging through text.""" if not hasattr(sys.stdin, "isatty"): return plainpager if not hasattr(sys.stdout, "isatty"): return plainpager if not sys.stdin.isatty() or not sys.stdout.isatty(): return plainpager use_pager = os.environ.get('MANPAGER') or os.environ.get('PAGER') if use_pager: if sys.platform == 'win32': # pipes completely broken in Windows return lambda text: tempfilepager(plain(text), use_pager) elif os.environ.get('TERM') in ('dumb', 'emacs'): return lambda text: pipepager(plain(text), use_pager) else: return lambda text: pipepager(text, use_pager) if os.environ.get('TERM') in ('dumb', 'emacs'): return plainpager if sys.platform == 'win32': return lambda text: tempfilepager(plain(text), 'more <') if hasattr(os, 'system') and os.system('(less) 2>/dev/null') == 0: return lambda text: pipepager(text, 'less -X')
def pager(text): return pydoc.tempfilepager(pydoc.plain(text), cmd)
def update_event(self, inp=-1): self.set_output_val(0, pydoc.tempfilepager(self.input(0), self.input(1)))