tty — Функции управления терминалом

Источник: Lib/tty.py


Модуль tty определяет функции для перевода tty в режимы cbreak и raw.

Availability: Unix.

Поскольку для его работы требуется модуль termios, он будет работать только на Unix.

Модуль tty определяет следующие функции:

tty.cfmakeraw(mode)

Преобразуйте список атрибутов tty mode, который представляет собой список, подобный тому, что возвращает termios.tcgetattr(), в список атрибутов tty в режиме raw.

Added in version 3.12.

tty.cfmakecbreak(mode)

Преобразуйте список атрибутов tty mode, который представляет собой список, подобный тому, что возвращает termios.tcgetattr(), в список атрибутов tty в режиме cbreak.

Это очищает флаги ECHO и ICANON локального режима в mode, а также устанавливает минимальный входной сигнал в 1 байт без задержки.

Added in version 3.12.

Изменено в версии 3.12.2: Флаг ICRNL больше не очищается. Это соответствует поведению stty cbreak в Linux и macOS, а также тому, что исторически делал setcbreak().

tty.setraw(fd, when=termios.TCSAFLUSH)

Изменение режима файлового дескриптора fd на raw. Если значение when опущено, по умолчанию оно равно termios.TCSAFLUSH, и оно передается в termios.tcsetattr(). Возвращаемое значение termios.tcgetattr() сохраняется перед установкой fd в режим raw; это значение возвращается.

Изменено в версии 3.12: Возвращаемым значением теперь являются исходные атрибуты tty, а не None.

tty.setcbreak(fd, when=termios.TCSAFLUSH)

Изменить режим файлового дескриптора fd на cbreak. Если значение when опущено, по умолчанию оно равно termios.TCSAFLUSH, и оно передается в termios.tcsetattr(). Возвращаемое значение termios.tcgetattr() сохраняется перед установкой fd в режим cbreak; это значение возвращается.

Это очищает флаги локального режима ECHO и ICANON, а также устанавливает минимальный входной сигнал на 1 байт без задержки.

Изменено в версии 3.12: Возвращаемым значением теперь являются исходные атрибуты tty, а не None.

Изменено в версии 3.12.2: Флаг ICRNL больше не снимается. Это восстанавливает поведение Python 3.11 и более ранних версий, а также соответствует тому, что описано в Linux, macOS и BSD на их stty(1) man-страницах относительно режима cbreak.

См.также

Модуль termios

Низкоуровневый интерфейс управления терминалом.