Metadata-Version: 2.1 Name: astunparse Version: 1.6.3 Summary: An AST unparser for Python Home-page: https://github.com/simonpercivall/astunparse Maintainer: Simon Percivall Maintainer-email: percivall@gmail.com License: BSD Keywords: astunparse Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Natural Language :: English Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Topic :: Software Development :: Code Generators Requires-Dist: wheel (<1.0,>=0.23.0) Requires-Dist: six (<2.0,>=1.6.1) ============ 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 Changelog ========= Here's the recent changes to AST Unparser. 1.6.3 - 2019-12-22 ~~~~~~~~~~~~~~~~~~ * Add full support for Python 3.8 1.6.2 - 2019-01-19 ~~~~~~~~~~~~~~~~~~ * Add support for the Constant node in Python 3.8 * Add tests to the sdist 1.6.1 - 2018-10-03 ~~~~~~~~~~~~~~~~~~ * Fix the roundtripping of very complex f-strings. 1.6.0 - 2018-09-30 ~~~~~~~~~~~~~~~~~~ * Python 3.7 compatibility 1.5.0 - 2017-02-05 ~~~~~~~~~~~~~~~~~~ * Python 3.6 compatibility * bugfix: correct argparser option type 1.4.0 - 2016-06-24 ~~~~~~~~~~~~~~~~~~ * Support for the ``async`` keyword * Support for unparsing "Interactive" and "Expression" nodes 1.3.0 - 2016-01-17 ~~~~~~~~~~~~~~~~~~ * Python 3.5 compatibility 1.2.0 - 2014-04-03 ~~~~~~~~~~~~~~~~~~ * Python 2.6 through 3.4 compatibility * A new function ``dump`` is added to return a pretty-printed version of the AST. It's also available when running ``python -m astunparse`` as the ``--dump`` argument. 1.1.0 - 2014-04-01 ~~~~~~~~~~~~~~~~~~ * ``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.