跳转到主要内容

高级AST验证

项目描述

astvalidate

一组用于验证给定抽象语法树完整性的AST验证器。

API

validate(tree: ast.Module, level: Optional[Literal[1, 2, 3]] = None) -> bool

tree 是您想要验证的AST对象。 level 是传递严格程度参数的选项,可以开启/关闭一些验证器。有关验证器的详细列表,请参阅下表

验证器 级别 描述
语法 1 模拟编译器通常生成的语法警告。
简单 1 进行简单验证,类似于 PyAST_Validate 接口。
符号 2 模拟符号表通常生成的语法错误。
上下文 3 确保一切都在正确的上下文中。

如果有任何错误, validate() 将在目标节点的位置引发 SyntaxError 或发出 SyntaxWarnings

import ast
import astvalidate

tree = ast.parse("""
def func():
    raise ValueError from something
""")
tree.body[0].body[0].exc = None
assert astvalidate.validate(tree)
File "<string>", line 3
SyntaxError: Raise's cause can't be used without setting an exception

项目详情


下载文件

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

源分布

astvalidate-2021.12.31.tar.gz (8.5 kB 查看哈希值)

上传时间:

构建分布

astvalidate-2021.12.31-py2.py3-none-any.whl (10.7 kB 查看哈希值)

上传于 Python 2 Python 3

支持者