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”.