An AST unparser for Python
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.
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.
Similar projects include:
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.
- typed-astunparse: extends astunparse to support type annotations.
Here’s the recent changes to AST Unparser.
unparse will return the source code for an AST. It is pretty feature-complete, and round-trips the stdlib, and is compatible with Python 2.7 and Python 3.4.
Running python -m astunparse will print the round-tripped source for any python files given as argument.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|astunparse-1.5.0-py2.py3-none-any.whl (11.7 kB) Copy SHA256 Checksum SHA256||py2.py3||Wheel||Feb 5, 2017|
|astunparse-1.5.0.tar.gz (12.7 kB) Copy SHA256 Checksum SHA256||–||Source||Feb 5, 2017|