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 版本加入.