与终端相关的功能。
项目描述
与终端相关的功能。
最新版本 20210316:
- ttysize:提前丢弃 Popen 对象。
- ttysize:使用后关闭 Popen.stdout。似乎泄漏。
功能modify_termios(fd=0, set_modes=None, clear_modes=None, strict=False)
将模式更改应用于 tty。如果更改无法应用,则termios.tcgetattr
返回以前的 tty 模式。None如果strict,则引发异常而不是返回None。
参数:
fd: 可选的 tty 文件描述符,默认0.set_modes:属性名称到要设置的值的新值的可选映射clear_modes:属性名称到新值的可选映射,以便清除值strict:可选标志,默认值False;tcgetattr如果为真,则从失败中引发异常,tcsetattr否则如果 errno 不是,则调用发出警告ENOTTY并继续。这旨在在默认情况下提供在批处理模式下的易用性,同时在需要时提供一种公开失败的模式。
属性名称来自
iflag, oflag, cflag, lflag, ispeed, ospeed, cc, 对应于termios.tcgetattr
调用定义的列表条目。
对于set_modes, 属性ispeed,ospeed和cc
直接应用;其他属性与现有模式进行二元或运算。
对于clear_modes, 属性ispeed,ospeed和cc
不能清除;其他属性是从现有模式中删除的二进制文件。
例如,在某些操作期间关闭终端回显:
old_modes = apply_termios(clear_modes={'lflag': termios.ECHO}):
... do something with tty echo disabled ...
if old_modes:
termios.tcsetattr(fd, termios.TCSANOW, old_modes)
功能setupterm(*args)
运行 curses.setupterm,需要能够使用状态行。使用全局标志来避免这样做两次。
功能stack_termios(fd=0, set_modes=None, clear_modes=None, strict=False)
上下文管理器应用和恢复对 tty 的更改。产生以前的 tty 模式,termios.tcgetattr
或者None如果无法应用更改。如果strict,则引发异常而不是屈服None。
参数:
fd: 可选的 tty 文件描述符,默认0.set_modes:属性名称到要设置的值的新值的可选映射clear_modes:属性名称到新值的可选映射,以便清除值strict:可选标志,默认值False;tcgetattr如果为真,则从失败中引发异常,tcsetattr否则如果 errno 不是,则调用发出警告ENOTTY并继续。这旨在在默认情况下提供在批处理模式下的易用性,同时在需要时提供一种公开失败的模式。
属性名称来自
iflag, oflag, cflag, lflag, ispeed, ospeed, cc, 对应于termios.tcgetattr
调用定义的列表条目。
对于set_modes, 属性ispeed,ospeed和cc
直接应用;其他属性与现有模式进行二元或运算。
对于clear_modes, 属性ispeed,ospeed和cc
不能清除;其他属性是从现有模式中删除的二进制文件。
例如,在某些操作期间关闭终端回显:
with stack_termios(clear_modes={'lflag': termios.ECHO}):
... do something with tty echo disabled ...
功能status(msg, *args, **kwargs)
将消息写入终端的状态行。
参数:
msg: 消息字符串args: 如果不为空,则消息为 %-formattedargsfile:指定输出文件的可选关键字参数。默认值:sys.stderr。
技巧:如果没有状态行,请使用 xterm 标题栏序列 :-(
功能statusline(text, fd=None, reverse=False, xpos=None, ypos=None)
更新状态行。
功能statusline_bs(text, reverse=False, xpos=None, ypos=None)
返回一个字节字符串以更新状态行。
功能ttysize(fd)
返回指定文件描述符的(行,列)元组。
如果无法确定窗口大小,则将为行和列中的一个或两个返回 None。
此功能依赖于 UNIXstty命令。
班级WinSize(builtins.tuple)
WinSize(行、列)
财产WinSize.columns
字段编号 1 的别名
财产WinSize.rows
字段编号 0 的别名
发布日志
发布 20210316:
- ttysize:提前丢弃 Popen 对象。
- ttysize:使用后关闭 Popen.stdout。似乎泄漏。
发布 20201102:新的 modify_termios 和 stack_termios 应用(和恢复)termios 模式。
发布 20200521:
- 从 cs.logutils 中拖入新的 status() 函数,它使用 cs.upd 来表示 status()——需要进行一些重构以与 cs.tty 中的其他函数匹配——文本与字节、stdout 与 stderr 等。
- 从 cs.gimmicks 获取 warning()。
发布 20190101:setupterm 的小错误修复。
发布 20170903:添加 statusline 和 statusline_s 功能;ttysize:支持 BSD stty 输出格式
发布 20160828:在 DISTINFO 中使用“install_requires”而不是“requires”,添加 PyPI 类别。
版本 20150116:初始 PyPI 版本。