2007-08-15 11:28:22 -03:00
|
|
|
:mod:`tty` --- Terminal control functions
|
|
|
|
=========================================
|
|
|
|
|
|
|
|
.. module:: tty
|
|
|
|
:platform: Unix
|
|
|
|
:synopsis: Utility functions that perform common terminal control operations.
|
2016-06-11 16:02:54 -03:00
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
.. moduleauthor:: Steen Lumholt
|
|
|
|
.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
|
|
|
|
|
2016-06-11 16:02:54 -03:00
|
|
|
**Source code:** :source:`Lib/tty.py`
|
|
|
|
|
|
|
|
--------------
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
The :mod:`tty` module defines functions for putting the tty into cbreak and raw
|
|
|
|
modes.
|
|
|
|
|
2023-10-31 13:14:27 -03:00
|
|
|
.. availability:: Unix.
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
Because it requires the :mod:`termios` module, it will work only on Unix.
|
|
|
|
|
|
|
|
The :mod:`tty` module defines the following functions:
|
|
|
|
|
|
|
|
|
2023-05-19 15:13:30 -03:00
|
|
|
.. 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.
|
|
|
|
|
2024-01-21 19:25:52 -04:00
|
|
|
This clears the ``ECHO`` and ``ICANON`` local mode flags in *mode* as well
|
|
|
|
as setting the minimum input to 1 byte with no delay.
|
|
|
|
|
2023-05-19 15:13:30 -03:00
|
|
|
.. versionadded:: 3.12
|
|
|
|
|
2024-01-21 19:25:52 -04:00
|
|
|
.. 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.
|
|
|
|
|
2023-05-19 15:13:30 -03:00
|
|
|
|
2009-09-16 12:58:14 -03:00
|
|
|
.. function:: setraw(fd, when=termios.TCSAFLUSH)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
Change the mode of the file descriptor *fd* to raw. If *when* is omitted, it
|
|
|
|
defaults to :const:`termios.TCSAFLUSH`, and is passed to
|
2023-05-19 15:13:30 -03:00
|
|
|
:func:`termios.tcsetattr`. The return value of :func:`termios.tcgetattr`
|
|
|
|
is saved before setting *fd* to raw mode; this value is returned.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-10-04 00:46:38 -03:00
|
|
|
.. versionchanged:: 3.12
|
|
|
|
The return value is now the original tty attributes, instead of None.
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2009-09-16 12:58:14 -03:00
|
|
|
.. function:: setcbreak(fd, when=termios.TCSAFLUSH)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
Change the mode of file descriptor *fd* to cbreak. If *when* is omitted, it
|
|
|
|
defaults to :const:`termios.TCSAFLUSH`, and is passed to
|
2023-05-19 15:13:30 -03:00
|
|
|
:func:`termios.tcsetattr`. The return value of :func:`termios.tcgetattr`
|
|
|
|
is saved before setting *fd* to cbreak mode; this value is returned.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2024-01-21 19:25:52 -04:00
|
|
|
This clears the ``ECHO`` and ``ICANON`` local mode flags as well as setting
|
|
|
|
the minimum input to 1 byte with no delay.
|
|
|
|
|
2023-10-04 00:46:38 -03:00
|
|
|
.. versionchanged:: 3.12
|
|
|
|
The return value is now the original tty attributes, instead of None.
|
|
|
|
|
2024-01-21 19:25:52 -04:00
|
|
|
.. 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.
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
Module :mod:`termios`
|
|
|
|
Low-level terminal control interface.
|
|
|
|
|