Skip to content
An AST unparser for Python
Branch: master
Clone or download
Latest commit d7ba156 Jan 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
lib/astunparse
tests
.gitignore
.travis.yml Disable testing 3.6.0 and 3.6.1 separately, test only 3.6. Sep 30, 2018
AUTHORS.rst
CONTRIBUTING.rst
HISTORY.rst
LICENSE Add the PSFL to LICENSE. Apr 1, 2014
MANIFEST.in
Makefile
README.rst
requirements.txt
setup.cfg
setup.py
test_requirements.txt
tox.ini

README.rst

AST Unparser

https://badge.fury.io/py/astunparse.png https://travis-ci.org/simonpercivall/astunparse.png?branch=master https://readthedocs.org/projects/astunparse/badge/

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:

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.

Features

  • unparses Python AST.
  • pretty-prints AST.
You can’t perform that action at this time.