Doc/library/tty.rst
!tty --- Terminal control functions.. module:: tty :synopsis: Utility functions that perform common terminal control operations.
Source code: :source:Lib/tty.py
The :mod:!tty module defines functions for putting the tty into cbreak and raw
modes.
.. availability:: Unix.
Because it requires the :mod:termios module, it will work only on Unix.
The :mod:!tty module defines the following functions:
.. function:: cfmakeraw(mode)
Convert the tty attribute list mode, which is a list like the one returned
by :func:termios.tcgetattr, to that of a tty in raw mode.
.. versionadded:: 3.12
.. function:: cfmakecbreak(mode)
Convert the tty attribute list mode, which is a list like the one returned
by :func:termios.tcgetattr, to that of a tty in cbreak mode.
This clears the ECHO and ICANON local mode flags in mode as well
as setting the minimum input to 1 byte with no delay.
.. versionadded:: 3.12
.. versionchanged:: 3.12.2
The ICRNL flag is no longer cleared. This matches Linux and macOS
stty cbreak behavior and what :func:setcbreak historically did.
.. function:: setraw(fd, when=termios.TCSAFLUSH)
Change the mode of the file descriptor fd to raw. If when is omitted, it
defaults to :const:termios.TCSAFLUSH, and is passed to
:func:termios.tcsetattr. The return value of :func:termios.tcgetattr
is saved before setting fd to raw mode; this value is returned.
.. versionchanged:: 3.12
The return value is now the original tty attributes, instead of None.
.. function:: setcbreak(fd, when=termios.TCSAFLUSH)
Change the mode of file descriptor fd to cbreak. If when is omitted, it
defaults to :const:termios.TCSAFLUSH, and is passed to
:func:termios.tcsetattr. The return value of :func:termios.tcgetattr
is saved before setting fd to cbreak mode; this value is returned.
This clears the ECHO and ICANON local mode flags as well as setting
the minimum input to 1 byte with no delay.
.. versionchanged:: 3.12
The return value is now the original tty attributes, instead of None.
.. versionchanged:: 3.12.2
The ICRNL flag is no longer cleared. This restores the behavior
of Python 3.11 and earlier as well as matching what Linux, macOS, & BSDs
describe in their stty(1) man pages regarding cbreak mode.
.. seealso::
Module :mod:termios
Low-level terminal control interface.