| :mod:`tty` --- Terminal control functions |
| ========================================= |
| |
| .. module:: tty |
| :platform: Unix |
| :synopsis: Utility functions that perform common terminal control operations. |
| |
| .. moduleauthor:: Steen Lumholt |
| .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il> |
| |
| **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. |
| |