terminals
¶
终端设备和I/O周围的实用功能。
这些代码大多执行平台敏感分支,例如windows支持。
这是它自己的一个模块,它可以抽象出原本会分散逻辑流中断的内容。
- invoke.terminals.WINDOWS = False¶
无论当前平台看起来是否本质上是Windows。
请注意,Cygwin的Python实际上非常接近它不需要(或不想要)的“真正的”unix!为了使用PyWin32--所以我们在这里只测试文字的Win32设置(普通的Python、ActiveState等)。
在 1.0 版本加入.
- invoke.terminals.bytes_to_read(input_: IO) int ¶
查询流
input_
查看有多少字节可能是可读的。备注
如果我们无法辨别(例如
input_
不是真正的文件描述符或不是有效的TTY),我们建议只读取1个字节。- 参数:
input -- 输入流对象(类似文件)。
- 返回:
int
要读取的字节数。
在 1.0 版本加入.
- invoke.terminals.character_buffered(stream: IO) Generator[None, None, None] ¶
强制本地终端
stream
要有个性,而不是台词,要有缓冲。仅适用于基于Unix的系统;在Windows上这是不可操作的。
在 1.0 版本加入.
- invoke.terminals.pty_size() Tuple[int, int] ¶
确定当前的局部伪端尺寸。
- 返回:
A
(num_cols, num_rows)
描述Pty大小的二元组。默认为(80, 24)
如果无法动态获得合理的结果。
在 1.0 版本加入.
- invoke.terminals.ready_for_reading(input_: IO) bool ¶
测试
input_
以确定读取操作是否会成功。- 参数:
input -- 输入流对象(类似文件)。
- 返回:
True
如果读取应该成功,False
否则的话。
在 1.0 版本加入.
- invoke.terminals.stdin_is_foregrounded_tty(stream: IO) bool ¶
检测是否已给出标准输入
stream
似乎是在TTY的前台。具体地说,将当前的Python进程组ID与流的文件描述符的ID进行比较,以确定它们是否匹配;如果它们不匹配,则很可能该进程已被放在后台。
这是一个测试,用来确定我们是否应该操作活动的标准输入,使其在字符缓冲模式下运行;当进程处于后台时,以这种方式接触终端会导致大多数Shell暂停执行。
备注
一开始没有连接到终端的进程总是会在此测试中失败,因为它的开头是“您有真正的
fileno
?“。在 1.0 版本加入.