TutorialΒΆ

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. The Stream is the stream processor. It processes the input and dispatches events. Events are things like LINEFEED, DRAW "a", or CURSOR_POSITION 10 10. See the API reference for more details.

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

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

Note: Screen has no idea what is the source of bytes fed into Stream, so, obviously, it can’t read or change environment variables, which implies that:

  • it doesn’t adjust LINES and COLUMNS on "resize" event;
  • it doesn’t use locale settings (LC_* and LANG);
  • it doesn’t use TERM value and expects it to be “linux” and only “linux”.

And that’s it for Hello World! Head over to the examples for more.