Skip to main content

Simple VTXXX-compatible terminal emulator.

Project description

               _
              | |
 _ __   _   _ | |_  ___
| '_ \ | | | || __|/ _ \
| |_) || |_| || |_|  __/
| .__/  \__, | \__|\___|
| |      __/ |
|_|     |___/      0.4.2

-- chicks dig dudes with terminals (c) @samfoo

What is pyte?

What is pyte? 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. pyte 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.

Note: pyte started as a fork of vt102, which is an incomplete pure Python implementation of VT100 terminal.

Installation

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

Quick example

There are two important classes in pyte: Screen and Stream. The Screen is the terminal screen emulator. It maintains an in-memory buffer of text and text-attributes to display on screen. The Stream is the stream processor. It manages the state of the input and dispatches events to anything that’s listening about things that are going on. Events are things like LINEFEED, DRAW "a", or CURSOR_POSITION 10 10. See the API documentation for more details.

In general, if you just want to know what’s being displayed on screen you can do something like the following:

>>> import pyte
>>> screen = pyte.Screen(80, 24)
>>> stream = pyte.Stream()
>>> stream.attach(screen)
>>> stream.feed("Hello World!")
>>> screen.display
    ['Hello World!                                                                    ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ',
     '                                                                                ']

Alternatives

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyte-0.4.2.tar.gz (23.0 kB view details)

Uploaded Source

File details

Details for the file pyte-0.4.2.tar.gz.

File metadata

  • Download URL: pyte-0.4.2.tar.gz
  • Upload date:
  • Size: 23.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyte-0.4.2.tar.gz
Algorithm Hash digest
SHA256 534e628ec07775d6a203f67f75f06f5d3c972b9e69123b769744ebfbb3ac4646
MD5 1eb16305af9cc9df86a9527fbbff6d93
BLAKE2b-256 d2290ab0df415d8e1b51ec2968efd3107d1333a808fd6a6cf51dea0f492e81ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page