Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/takluyver/astcheck

Check Python ASTs against templates
https://github.com/takluyver/astcheck

Last synced: about 2 months ago
JSON representation

Check Python ASTs against templates

Awesome Lists containing this project

README

        

astcheck
========

astcheck compares Python Abstract Syntax Trees against a template. This is
useful for testing software that automatically generates or modifies Python code.

Installation::

pip install astcheck

Example use:

.. code:: python

import ast, astcheck

template = ast.Module(body=[
ast.FunctionDef(name='double', args=ast.arguments(args=[ast.arg(arg='a')])),
ast.Assign(value=ast.Call(func=ast.Name(id='double')))
])

sample = """
def double(a):
do_things()
return a*2
b = double(a)
"""

astcheck.assert_ast_like(ast.parse(sample), template)

Only the parts specified in the template are checked. In this example, the code
inside the function, and the assignment target (``b``) could be anything.

For more details, see `the documentation `_.