import curses class TermManager(): def __init__(self): self.screen = curses.initscr() # convert escapes sequences to curses abstraction self.screen.keypad(True) # stop printing typed keys to the terminal curses.noecho() # send keys through without having to press curses.cbreak() # make cursor invisible curses.curs_set(False) def __enter__(self): return self.screen def __exit__(self, type, value, traceback): # restore the terminal to its original state self.screen.keypad(False) curses.echo() curses.nocbreak() curses.curs_set(True) curses.endwin()