tty — Terminal control functions¶
Source code:Lib/tty.py
Thetty module defines functions for putting the tty into cbreak and rawmodes.
Availability: Unix.
Because it requires thetermios module, it will work only on Unix.
Thetty module defines the following functions:
- tty.cfmakeraw(mode)¶
Convert the tty attribute listmode, which is a list like the one returnedby
termios.tcgetattr(), to that of a tty in raw mode.Added in version 3.12.
- tty.cfmakecbreak(mode)¶
Convert the tty attribute listmode, which is a list like the one returnedby
termios.tcgetattr(), to that of a tty in cbreak mode.This clears the
ECHOandICANONlocal mode flags inmode as wellas setting the minimum input to 1 byte with no delay.Added in version 3.12.
Changed in version 3.12.2:The
ICRNLflag is no longer cleared. This matches Linux and macOSsttycbreakbehavior and whatsetcbreak()historically did.
- tty.setraw(fd,when=termios.TCSAFLUSH)¶
Change the mode of the file descriptorfd to raw. Ifwhen is omitted, itdefaults to
termios.TCSAFLUSH, and is passed totermios.tcsetattr(). The return value oftermios.tcgetattr()is saved before settingfd to raw mode; this value is returned.Changed in version 3.12:The return value is now the original tty attributes, instead of
None.
- tty.setcbreak(fd,when=termios.TCSAFLUSH)¶
Change the mode of file descriptorfd to cbreak. Ifwhen is omitted, itdefaults to
termios.TCSAFLUSH, and is passed totermios.tcsetattr(). The return value oftermios.tcgetattr()is saved before settingfd to cbreak mode; this value is returned.This clears the
ECHOandICANONlocal mode flags as well as settingthe minimum input to 1 byte with no delay.Changed in version 3.12:The return value is now the original tty attributes, instead of
None.Changed in version 3.12.2:The
ICRNLflag is no longer cleared. This restores the behaviorof Python 3.11 and earlier as well as matching what Linux, macOS, & BSDsdescribe in theirstty(1)man pages regarding cbreak mode.
See also
- Module
termios Low-level terminal control interface.