watchers
¶
- class invoke.watchers.FailingResponder(pattern: str, response: str, sentinel: str)¶
的变体
Responder
其能够检测不正确的响应。这个类添加了一个
sentinel
参数设置为__init__
,以及它的submit
将筹集ResponseNotAccepted
如果它在流中检测到该前哨数值。在 1.0 版本加入.
- class invoke.watchers.Responder(pattern: str, response: str)¶
提交对特定模式的响应的可参数化对象。
通常用于实现密码自动响应,例如
sudo
。在 1.0 版本加入.
- __init__(pattern: str, response: str) None ¶
把这个印下来
Responder
以及必要的参数。- 参数:
pattern -- 原始字符串(例如
r"\[sudo\] password for .*:"
),它将被转换为正则表达式。response -- 在以下情况下提交给子进程的stdin的字符串
pattern
被检测到。
- class invoke.watchers.StreamWatcher¶
其子类可以作用于来自子进程的SAW流数据的类。
子类必须显示以下API;请参见
Responder
来看一个具体的例子。__init__
完全取决于每个子类,尽管像往常一样,子类 of 子类应该小心地使用super
在适当的情况下。submit
必须接受正在观察的流的全部当前内容作为字符串,并可以选择返回字符串的可迭代(或充当生成器迭代器,即多次调用yield <string>
),每个都将被写入子流程的标准输入。
备注
StreamWatcher
子类的存在部分是为了启用状态跟踪,例如检测提交的密码何时不起作用&出错(或提示用户等)。使用简单的回调函数很难实现这样的记账。备注
StreamWatcher
子类threading.local
这样,它的实例就可以用来“监视”单独线程中的stdout和stderr的子进程。在 1.0 版本加入.