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

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


tty モジュールは、tty を cbreak モードや raw モードにする関数を定義しています。

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

tty モジュールは次の関数を定義しています。

tty.cfmakeraw(mode)

tty 属性のリスト mode を、raw モードの tty の属性に変換します。 mode は termios.tcgetattr() が返すものと同じ形式のリストです。

Added in version 3.12.

tty.cfmakecbreak(mode)

tty 属性のリスト mode を、cbreak モードの tty の属性に変換します。 mode は termios.tcgetattr() が返すものと同じ形式のリストです。

mode のローカルモードフラグ ECHO と ICANON を解除し、最小入力を 1 バイト、遅延なしに設定します。

Added in version 3.12.

バージョン 3.12.2 で変更: ICRNL フラグを解除しなくなりました。 これは Linux と macOS の stty cbreak の動作、および従来の setcbreak() の動作と一致します。

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

ファイル記述子 fd のモードを raw に変更します。 when のデフォルトは termios.TCSAFLUSH で、termios.tcsetattr() に渡されます。 fd を raw モードにする前に termios.tcgetattr() の戻り値を保存し、その値を返します。

バージョン 3.12 で変更: None の代わりに、元の tty 属性を返すようになりました。

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

ファイル記述子 fd のモードを cbreak に変更します。 when のデフォルトは termios.TCSAFLUSH で、termios.tcsetattr() に渡されます。 fd を cbreak モードにする前に termios.tcgetattr() の戻り値を保存し、その値を返します。

ローカルモードフラグ ECHO と ICANON を解除し、最小入力を 1 バイト、遅延なしに設定します。

バージョン 3.12 で変更: None の代わりに、元の tty 属性を返すようになりました。

バージョン 3.12.2 で変更: ICRNL フラグを解除しなくなりました。 これにより Python 3.11 以前の動作に戻り、Linux、macOS、BSD 系の stty(1) マニュアルページに記載されている cbreak モードの動作とも一致します。

参考

モジュール termios

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