Python based terminal emulation library with linux console_codes support (still named 'vt102', though)
Python
Switch branches/tags
Pull request Compare This branch is 251 commits ahead, 26 commits behind samfoo:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
examples
tests
vt102
.gitignore
AUTHORS.rst
CHANGES.rst
LICENSE
README.rst
runtests.py
setup.py

README.rst

vt102

«Chicks dig dudes with terminals» © @samfoo

About

What is vt102? It's an in memory VTXXX-compatible terminal emulator. XXX stands for a series video terminals, developed by DEC between 1970 and 1995. The first, and probably the most famous one, was VT100 terminal, which is now a de-facto standard for all virtual terminal emulators. vt102 follows the suit.

So, why would one need a terminal emulator library?

  • To screen scrape terminal apps, for example htop or aptitude.
  • To write cross platform terminal emulators; either with a graphical (xterm, rxvt) or a web interface, like AjaxTerm.
  • To have fun, hacking on the ancient, poorly documented technologies.

Installation

If you have setuptools you can use easy_install -U vt102. Otherwise, you can download the source from GitHub and run python setup.py install.

Example

>>> import vt102
>>> screen = vt102.Screen(80, 24)
>>> stream = vt102.Stream()
>>> stream.attach(screen)
>>> stream.feed(u"\u001b7\u001b[?47h\u001b)0\u001b[H\u001b[2J\u001b[H"
                u"\u001b[2;1HNetHack, Copyright 1985-2003\r\u001b[3;1"
                u"H         By Stichting Mathematisch Centrum and M. "
                u"Stephenson.\r\u001b[4;1H         See license for de"
                u"tails.\r\u001b[5;1H\u001b[6;1H\u001b[7;1HShall I pi"
                u"ck a character's race, role, gender and alignment f"
                u"or you? [ynq] ")
>>> screen.display
    ['                                                                                ',
     'NetHack, Copyright 1985-2003                                                    ',
     '         By Stichting Mathematisch Centrum and M. Stephenson.                   ',
     '         See license for details.                                               ',
     '                                                                                ',
     '                                                                                ',
     "Shall I pick a character's race, role, gender and alignment for you? [ynq]      ",
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ']
>>>

Options?

vt102 is not alone in the weird world of terminal emulator libraries, here's a few other options worth checking out: Termemulator, pyqonsole, webtty AjaxTerm