跳转到主要内容

tty模块的增强版本

项目描述

概述

term软件包是标准库中tty模块的增强版本。它提供上下文管理器以打开终端流,以及暂时将终端切换到raw或cbreak模式。

软件包内容

终端控制

setraw(fd, when=TCSAFLUSH, min=1, time=0)

将终端置于raw模式。

setcbreak(fd, when=TCSAFLUSH, min=1, time=0)

将终端置于cbreak模式。

rawmode(fd, when=TCSAFLUSH, min=1, time=0)

将终端置于raw模式的上下文管理器。

将终端置于cbreak模式的上下文管理器。

将终端置于cbreak模式的上下文管理器。

终端I/O

opentty(bufsize=-1, mode='r+b')

返回一个新rw流,连接到/dev/tty。如果设备无法打开,则流为None。

readto(stream, endswith)

从流中读取字节或字符,直到buffer.endswith(endswith)为true。

高级函数

getyx()

返回光标位置作为基于1的(行,列)元组。如果设备无法打开或终端不支持DSR 6,则行和列都是0。

getfgcolor()

返回终端前景色为(r, g, b)元组。如果设备无法打开或不支持OSC 10,则所有值均为-1。

getbgcolor()

返回终端背景色为(r, g, b)元组。如果设备无法打开或不支持OSC 11,则所有值均为-1。

islightmode()

如果背景色比前景色亮,则返回true。如果终端不支持OSC颜色查询,则可能返回None。

isdarkmode()

如果背景色比前景色暗,则返回true。如果终端不支持OSC颜色查询,则可能返回None。

文档

请参阅API文档以获取更多信息。

变更日志

2.5 - 2023-09-14

  • 更新tox.ini以使用最新版tox。[stefan]

  • 添加 .readthedocs.yaml 文件。[stefan]

  • 在docs extra中锁定sphinx和sphinx-rtd-theme版本。[stefan]

  • 添加pylint extra,安装pylint。[stefan]

  • 更新 .pylintrc 以使用最新版pylint。[stefan]

2.4 - 2022-03-07

  • 将tox.ini中的Python版本更新为3.8-3.10,并删除旧版本。[stefan]

  • 在tox.ini中替换已废弃的 python setup.py test。[stefan]

  • 从setup.py中删除已废弃的 test_suite。[stefan]

  • 将元数据移动到setup.cfg并添加一个pyproject.toml文件。[stefan]

  • 在sdist中包含测试,但不包括在wheel中。[stefan]

  • 修复字节字符串字面量中的转义序列警告。[stefan]

  • 在Python 2和3下都以二进制模式打开 /dev/tty。[stefan]

  • 正式将opentty的bufsize参数默认值从1更改为-1。在Python 3中,1始终有效等同于-1,但Python 3.8现在会发出警告。[stefan]

  • 添加readto、getfgcolor、getbgcolor、islightmode和isdarkmode。[stefan]

2.3 - 2019-02-08

  • 添加MANIFEST.in。[stefan]

  • 以wheel形式发布。[stefan]

  • 删除显式的GPL,因为PSF许可本身就与GPL兼容。[stefan]

2.2 - 2017-02-05

  • 支持2.6-3.6版本的Python,无需2to3。[stefan]

2.1 - 2014-04-19

  • 从install_requires中删除setuptools,因为它并不是必需的。[stefan]

2.0 - 2012-04-27

  • 在Python 3下以二进制模式打开 /dev/tty。[stefan]

  • 如果设备不可寻址,则禁用缓冲。[stefan]

  • 删除getmaxyx,因为它无法可靠实现。[stefan]

  • 支持Python 2.5。[stefan]

  • 将许可更改为GPL或PSF以避免PSF代码的重新授权。[stefan]

1.0 - 2012-04-11

  • 初始发布。[stefan]

支持者