tty --- 端末制御用の関数群

ソースコード: Lib/tty.py


tty モジュールは端末を cbreak および raw モードにするための関数を定義しています。

Availability: Unix.

このモジュールは termios モジュールを必要とするため、 Unix でしか動作しません。

tty モジュールでは、以下の関数を定義しています:

tty.cfmakeraw(mode)

Convert the tty attribute list mode, which is a list like the one returned by termios.tcgetattr(), to that of a tty in raw mode.

Added in version 3.12.

tty.cfmakecbreak(mode)

Convert the tty attribute list mode, which is a list like the one returned by 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.

Added in version 3.12.

バージョン 3.12.2 で変更: The ICRNL flag is no longer cleared. This matches Linux and macOS stty cbreak behavior and what setcbreak() historically did.

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

Change the mode of the file descriptor fd to raw. If when is omitted, it defaults to termios.TCSAFLUSH, and is passed to termios.tcsetattr(). The return value of termios.tcgetattr() is saved before setting fd to raw mode; this value is returned.

バージョン 3.12 で変更: The return value is now the original tty attributes, instead of None.

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

Change the mode of file descriptor fd to cbreak. If when is omitted, it defaults to termios.TCSAFLUSH, and is passed to termios.tcsetattr(). The return value of 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.

バージョン 3.12 で変更: The return value is now the original tty attributes, instead of None.

バージョン 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.

参考

モジュール termios

低水準端末制御インターフェース。