### Navigation

- index
- modules |
- next |
- previous |
- pyte 0.4.8 documentation »

# 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 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 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:

    >>> import pyte
    >>> screen = pyte.Screen(80, 24)
    >>> stream = pyte.Stream()
    >>> stream.attach(screen)
    >>> stream.feed("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”.

### Navigation

- index
- modules |
- next |
- previous |
- pyte 0.4.8 documentation »