An AST unparser for Python
.. image:: https://badge.fury.io/py/astunparse.png :target: http://badge.fury.io/py/astunparse
.. image:: https://travis-ci.org/simonpercivall/astunparse.png?branch=master :target: https://travis-ci.org/simonpercivall/astunparse
.. image:: https://readthedocs.org/projects/astunparse/badge/ :target: https://astunparse.readthedocs.org/
An AST unparser for Python.
This is a factored out version of
unparsefound in the Python source distribution; under Demo/parser in Python 2 and under Tools/parser in Python 3.
import inspect import ast import astunparse
get back the source code
get a pretty-printed dump of the AST
This library is single-source compatible with Python 2.6 through Python 3.5. It is authored by the Python core developers; I have simply merged the Python 2.7 and the Python 3.5 source and test suites, and added a wrapper. This factoring out is to provide a library implementation that supports both versions.
Added to this is a pretty-printing
The test suite both runs specific tests and also roundtrips much of the standard library.
Similar projects include:
* codegen_ * astor_ * astmonkey_ * astprint_
None of these roundtrip much of the standard library and fail several of the basic tests in the
This library uses mature and core maintained code instead of trying to patch existing libraries. The
test_unparsemodules are under the PSF license.
* typed-astunparse: extends astunparse to support type annotations.
.. _codegen: https://github.com/andreif/codegen .. _astor: https://github.com/berkerpeksag/astor .. _astmonkey: https://github.com/konradhalas/astmonkey .. _astprint: https://github.com/Manticore/astprint