astunparse
astunparse copied to clipboard
An AST unparser for Python
============ AST Unparser
.. 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 unparse
found in the Python
source distribution; under Demo/parser in Python 2 and under Tools/parser
in Python 3.
Basic example::
import inspect
import ast
import astunparse
# get back the source code
astunparse.unparse(ast.parse(inspect.getsource(ast)))
# get a pretty-printed dump of the AST
astunparse.dump(ast.parse(inspect.getsource(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 dump
utility function.
The test suite both runs specific tests and also roundtrips much of the standard library.
Extensions and Alternatives
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 test_unparse
test suite.
This library uses mature and core maintained code instead of trying to patch
existing libraries. The unparse
and the test_unparse
modules
are under the PSF license.
Extensions include:
* typed-astunparse: extends astunparse to support type annotations.
- Documentation: http://astunparse.rtfd.org.
Features
- unparses Python AST.
- pretty-prints AST.
.. _codegen: https://github.com/andreif/codegen .. _astor: https://github.com/berkerpeksag/astor .. _astmonkey: https://github.com/konradhalas/astmonkey .. _astprint: https://github.com/Manticore/astprint