parameters: (text)
docstring: Page through text on a text terminal.
docstring_summary: Page through text on a text terminal.
docstring_tokens: Page through text on a text terminal .
function: def ttypager(text):
      """Page through text on a text terminal."""
      lines = split(plain(text), '\n')
      try:
          import tty
          fd = sys.stdin.fileno()
          old = tty.tcgetattr(fd)
          tty.setcbreak(fd)
          getchar = lambda: sys.stdin.read(1)
      except (ImportError, AttributeError):
          tty = None
          getchar = lambda: sys.stdin.readline()[:-1][:1]
  
      try:
          r = inc = os.environ.get('LINES', 25) - 1
          sys.stdout.write(join(lines[:inc], '\n') + '\n')
          while lines[r:]:
              sys.stdout.write('-- more --')
              sys.stdout.flush()
              c = getchar()
  
              if c in ('q', 'Q'):
                  sys.stdout.write('\r          \r')
                  break
              elif c in ('\r', '\n'):
                  sys.stdout.write('\r          \r' + lines[r] + '\n')
                  r = r + 1
                  continue
              if c in ('b', 'B', '\x1b'):
                  r = r - inc - inc
                  if r < 0: r = 0
              sys.stdout.write('\n' + join(lines[r:r+inc], '\n') + '\n')
              r = r + inc
  
      finally:
          if tty:
              tty.tcsetattr(fd, tty.TCSAFLUSH, old)
function_tokens: def ttypager ( text ) : lines = split ( plain ( text ) , '\n' ) try : import tty fd = sys . stdin . fileno ( ) old = tty . tcgetattr ( fd ) tty . setcbreak ( fd ) getchar = lambda : sys . stdin . read ( 1 ) except ( ImportError , AttributeError ) : tty = None getchar = lambda : sys . stdin . readline ( ) [ : - 1 ] [ : 1 ] try : r = inc = os . environ . get ( 'LINES' , 25 ) - 1 sys . stdout . write ( join ( lines [ : inc ] , '\n' ) + '\n' ) while lines [ r : ] : sys . stdout . write ( '-- more --' ) sys . stdout . flush ( ) c = getchar ( ) if c in ( 'q' , 'Q' ) : sys . stdout . write ( '\r          \r' ) break elif c in ( '\r' , '\n' ) : sys . stdout . write ( '\r          \r' + lines [ r ] + '\n' ) r = r + 1 continue if c in ( 'b' , 'B' , '\x1b' ) : r = r - inc - inc if r < 0 : r = 0 sys . stdout . write ( '\n' + join ( lines [ r : r + inc ] , '\n' ) + '\n' ) r = r + inc finally : if tty : tty . tcsetattr ( fd , tty . TCSAFLUSH , old )