python流上的expect-like工具

streamexpect的Python项目详细描述


streamexpect

Build StatusCoverage StatusCode ClimateGitHub IssuesPyPILicense

streamexpect是一个提供跨平台“expect-like”的库 通用python流和套接字的功能。它类似于 Pexpect库,除了 pexpect显式地需要一个底层文件(通常是tty)。 streamexpect使用duck类型,只需要readrecv 方法

View the Full Documentation

streamexpect的原始版本是由 DigiWireless Design Services。软件以alpha的形式提供 软件未经正式测试。但是,它确实 有广泛的单元测试

View the Changelog

安装

使用pip执行安装。最新发布的版本 streamexpect可以通过以下命令获得:

$ pip install streamexpect

从github安装开发版本:

$ pip install -U -e 'git+https://github.com/digidotcom/python-streamexpect#egg=streamexpect'

示例

以下示例显示如何打开串行端口(在Windows PC上)。 发送uname命令,并验证linux是否在 返回数据

importserialimportstreamexpect# timeout=0 is essential, as streams are required to be non-blockingser=serial.Serial('COM1',baudrate=115200,timeout=0)withstreamexpect.wrap(ser)asstream:stream.write('\r\nuname -a\r\n')match=stream.expect_bytes('Linux',timeout=1.0)print(u'Found Linux at index {}'.format(match.start))

设计目标

  • 跨平台

库不应该依赖于任何特性(除了python之外) 排除平台。是的,这意味着Windows是一流的公民

  • 明确编码

当处理数据流时, 流从一系列二进制字节变为一组编码字节 字符可能不清楚。库应该在 处理二进制与字符,使得混合这两种类型是 不允许没有显式选项来启用编码和解码。

  • 常见用例应该很简单

对于95%的用户,streamexpect.wrap函数应该完成 期望的目标。应使用智能默认选项,以便 图书馆只是“做正确的事”。

  • 复杂的用例应该是可能的

streamexpect.wrap函数返回的对象应该 它们本身易于使用和扩展。协议要求 类应该是明确的,并且有文档记录。

开发

streamexpect的开发在github上的open中进行。拜托 使用pull请求提交对代码和文档的更改

streamexpect的构建和测试过程已经自动化为 尽可能多。tox处理建筑 测试代码,以及生成文档和 自动测试代码样式问题。TOX可以安装在 管道:

pip install tox

通用tox命令如下:

tox

这将尝试针对多个 不同版本的python,在找不到版本时会出错。到 只测试一个python版本,在 tox命令行。例如,只测试python 2.7:

tox -e py27

可以指定多个版本,用逗号分隔:

tox -e py27,py35

文档生成和代码样式检查不是由 默认值,因此必须显式地提供给tox命令。 文档生成需要Python2.7、Python3.3或 更大的。

tox -e docs,style

许可证

这个软件是开源软件。Digi International版权所有, 2015年。

此源代码表单受Mozilla Public条款的约束 执照,2.0版。如果MPL的一个副本没有与此一起分发 文件,您可以在http://mozilla.org/MPL/2.0/获得一个。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序