跳转到主要内容

"dbus签名解析器"

项目描述

一个dbus签名的解析器。

简介

本模块包含一个使用pyparsing库(http://pyparsing.wikispaces.com/)构建的dbus签名的解析器。

语法遵循https://dbus.freedesktop.org/doc/dbus-specification.html中的非正式规范。这是一个非常简单的语法,可以被一个LL(1)解析器解析。

语法已经使用Hypothesis测试库(http://hypothesis.works/)进行了大量的测试。

使用和实现提示

使用库来验证字符串是否是签名相当简单

>>> from dbus_signature_pyparsing import Parser
>>> parser = Parser()
>>> parser.PARSER.parseString("a(qy)", parseAll=True)

如果parseString()没有引发pyparsing异常,则参数字符串是有效的签名。

请注意,空字符串是一个有效的签名。因此,要求解析器通过将 parseAll 参数设置为 True 解析整个字符串是很重要的。如果 parseAll 为 False(默认值),则解析器始终可以解析空字符串,并且每个字符串都将被解析并验证是否为有效的签名。

解析器对象公开所有其子解析器作为实例属性。PARSER 属性是顶层解析器,适用于解析通用签名。COMPLETE 属性解析非正式规范中定义的“单个完整类型”。CODE 属性相当于规范中的“类型代码”。

解析器可以通过代理或继承轻松使用。每个子解析器属性都是 ParserElement;因此,每个子解析器都支持 addParseAction() 方法。要自定义基本解析器以在解析签名后返回特定值,请在适当的子解析器上调用 addParseAction() 方法,并选择合适的方法。修改后的解析器应在调用 parseString() 方法时在有效的签名字符串上返回所需值。有关进一步的帮助,请参阅 pyparsing 的全面文档,网址为 http://pyparsing.wikispaces.com/https://pythonhosted.org/pyparsing/

打包

下游打包者,如果将测试纳入其打包,建议仅使用 test_deterministic.py 模块中的测试,以避免由于 Hypothesis 测试的非确定性行为而产生的测试失败。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

dbus-signature-pyparsing-0.4.1.tar.gz (8.1 kB 查看散列)

上传时间

构建分发

dbus_signature_pyparsing-0.4.1-py3-none-any.whl (9.2 kB 查看散列)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面