Advanced AST validation
Project description
astvalidate
A series of AST validators for validating the integrity of the given abstract syntax tree.
API
validate(tree: ast.Module, level: Optional[Literal[1, 2, 3]] = None) -> bool
tree
is the AST object that you want to verify. level
is an argument to pass the
level of strictness, and turn on/off some of the validators. For a detailed list of validators,
see the table below:
Validator | Level | Description |
---|---|---|
Syntatical | 1 | Emulates syntax warnings that are normally generated by compiler. |
Simple | 1 | Does simple verifications, similar to PyAST_Validate interface |
Symbolic | 2 | Emulates syntax error that are normally generated by symbol table |
Contextual | 3 | Ensures everything is in the right context. |
If there are any errors, validate()
will raise a SyntaxError
or issue SyntaxWarnings
on the location of the target node.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
astvalidate-2021.12.31.tar.gz
(8.5 kB
view hashes)
Built Distribution
Close
Hashes for astvalidate-2021.12.31-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 158cdb44b8af69fdd0b61dd1b84755196c79d9863f43daed69c81fcd9326d0f0 |
|
MD5 | 039f3616a773638c2178a993efd211bb |
|
BLAKE2b-256 | fecbb4396dfaac87feb567f1d5cdeeb8ea5f1062c9d0d381f68c09d432534726 |