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