Документация Python неофициальный перевод

tty – Функции управления терминаломtty – Terminal control functions

Исходный код: Lib/tty.py


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

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

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

tty.cfmakeraw(mode)

Преобразует список атрибутов tty mode (такой список возвращает termios.tcgetattr()) в список атрибутов tty в raw-режиме.

Добавлено в версии 3.12.

tty.cfmakecbreak(mode)

Преобразует список атрибутов tty mode (такой список возвращает termios.tcgetattr()) в список атрибутов tty в cbreak-режиме.

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

Добавлено в версии 3.12.

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

См. также

Модуль termios

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