{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Code Generators" ], "description": "============\nAST Unparser\n============\n\n.. image:: https://badge.fury.io/py/astunparse.png\n :target: http://badge.fury.io/py/astunparse\n\n.. image:: https://travis-ci.org/simonpercivall/astunparse.png?branch=master\n :target: https://travis-ci.org/simonpercivall/astunparse\n\n.. image:: https://readthedocs.org/projects/astunparse/badge/\n :target: https://astunparse.readthedocs.org/\n\nAn AST unparser for Python.\n\nThis is a factored out version of ``unparse`` found in the Python\nsource distribution; under Demo/parser in Python 2 and under Tools/parser\nin Python 3.\n\nBasic example::\n\n import inspect\n import ast\n import astunparse\n\n # get back the source code\n astunparse.unparse(ast.parse(inspect.getsource(ast)))\n\n # get a pretty-printed dump of the AST\n astunparse.dump(ast.parse(inspect.getsource(ast)))\n\n\nThis library is single-source compatible with Python 2.6 through Python 3.5. It\nis authored by the Python core developers; I have simply merged the Python 2.7\nand the Python 3.5 source and test suites, and added a wrapper. This factoring\nout is to provide a library implementation that supports both versions.\n\nAdded to this is a pretty-printing ``dump`` utility function.\n\nThe test suite both runs specific tests and also roundtrips much of the\nstandard library.\n\nExtensions and Alternatives\n---------------------------\n\nSimilar projects include:\n\n * codegen_\n * astor_\n * astmonkey_\n * astprint_\n\nNone of these roundtrip much of the standard library and fail several of the basic\ntests in the ``test_unparse`` test suite.\n\nThis library uses mature and core maintained code instead of trying to patch\nexisting libraries. The ``unparse`` and the ``test_unparse`` modules\nare under the PSF license.\n\nExtensions include:\n\n * typed-astunparse: extends astunparse to support type annotations.\n\n* Documentation: http://astunparse.rtfd.org.\n\nFeatures\n--------\n\n* unparses Python AST.\n* pretty-prints AST.\n\n\n.. _codegen: https://github.com/andreif/codegen\n.. _astor: https://github.com/berkerpeksag/astor\n.. _astmonkey: https://github.com/konradhalas/astmonkey\n.. _astprint: https://github.com/Manticore/astprint\n\n\nChangelog\n=========\n\nHere's the recent changes to AST Unparser.\n\n1.6.2 - 2019-01-19\n~~~~~~~~~~~~~~~~~~\n\n* Add support for the Constant node in Python 3.8\n* Add tests to the sdist\n\n1.6.1 - 2018-10-03\n~~~~~~~~~~~~~~~~~~\n\n* Fix the roundtripping of very complex f-strings.\n\n1.6.0 - 2018-09-30\n~~~~~~~~~~~~~~~~~~\n\n* Python 3.7 compatibility\n\n1.5.0 - 2017-02-05\n~~~~~~~~~~~~~~~~~~\n\n* Python 3.6 compatibility\n* bugfix: correct argparser option type\n\n1.4.0 - 2016-06-24\n~~~~~~~~~~~~~~~~~~\n\n* Support for the ``async`` keyword\n* Support for unparsing \"Interactive\" and \"Expression\" nodes\n\n1.3.0 - 2016-01-17\n~~~~~~~~~~~~~~~~~~\n\n* Python 3.5 compatibility\n\n1.2.0 - 2014-04-03\n~~~~~~~~~~~~~~~~~~\n\n* Python 2.6 through 3.4 compatibility\n* A new function ``dump`` is added to return a pretty-printed version\n of the AST. It's also available when running ``python -m astunparse``\n as the ``--dump`` argument.\n\n1.1.0 - 2014-04-01\n~~~~~~~~~~~~~~~~~~\n\n* ``unparse`` will return the source code for an AST. It is pretty\n feature-complete, and round-trips the stdlib, and is compatible with\n Python 2.7 and Python 3.4.\n\n Running ``python -m astunparse`` will print the round-tripped source\n for any python files given as argument.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/simonpercivall/astunparse", "keywords": "astunparse", "license": "BSD", "maintainer": "Simon Percivall", "maintainer_email": "percivall@gmail.com", "name": "astunparse", "package_url": "https://pypi.org/project/astunparse/", "platform": "", "project_url": "https://pypi.org/project/astunparse/", "project_urls": { "Homepage": "https://github.com/simonpercivall/astunparse" }, "release_url": "https://pypi.org/project/astunparse/1.6.2/", "requires_dist": [ "wheel (<1.0,>=0.23.0)", "six (<2.0,>=1.6.1)" ], "requires_python": "", "summary": "An AST unparser for Python", "version": "1.6.2" }, "last_serial": 4716259, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "485b4e3b90eb62f3ce0a32af78b21339", "sha256": "9741eef48e2c6b67582571a90083db9418766c9c30b54ec4fcb1584a6844266d" }, "downloads": -1, "filename": "astunparse-1.1.0-py2.7.egg", "has_sig": false, "md5_digest": "485b4e3b90eb62f3ce0a32af78b21339", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7751, "upload_time": "2014-04-01T08:47:55", "url": "https://files.pythonhosted.org/packages/94/6f/239701babe86addecfebe360344ba8e34a37ebd2ea1eee32e33101f9eac9/astunparse-1.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "1c5fb39c280550ccc3d0696971732829", "sha256": "a00a06f730242a7d8f977d372fb3291930ab0c291865c0ca7fc09678cf02b8b9" }, "downloads": -1, "filename": "astunparse-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c5fb39c280550ccc3d0696971732829", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9559, "upload_time": "2014-04-01T08:47:52", "url": "https://files.pythonhosted.org/packages/80/44/55c5dac78cac97e5becdcb88d219abeb8ae9b8617aa85aaa1399ed087067/astunparse-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "baf0dae44ad6ea78f7620f20b8711c5e", "sha256": "ce301008636304f00b68574692eb2e7db57aec0d3d7483ca94e50aeea7532503" }, "downloads": -1, "filename": "astunparse-1.1.0-py3.3.egg", "has_sig": false, "md5_digest": "baf0dae44ad6ea78f7620f20b8711c5e", "packagetype": "bdist_egg", "python_version": "3.3", "requires_python": null, "size": 18366, "upload_time": "2014-04-01T08:48:54", "url": "https://files.pythonhosted.org/packages/16/fd/2b0511f4d12fc6ba2b24d678c28e330b831c0012ab68304a7035afe677be/astunparse-1.1.0-py3.3.egg" }, { "comment_text": "", "digests": { "md5": "e9328967d19804f7c50c7e39df3f504b", "sha256": "197f504f747245709707b3ccab435fdabee6a2acc3fca5a98e892eaa5c8ebf41" }, "downloads": -1, "filename": "astunparse-1.1.0-py3.4.egg", "has_sig": false, "md5_digest": "e9328967d19804f7c50c7e39df3f504b", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 18085, "upload_time": "2014-04-01T08:48:40", "url": "https://files.pythonhosted.org/packages/1f/84/6676adfa873db27ab3fd4661dc47ba06a943df05b20593df24c1faa2f7c4/astunparse-1.1.0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "36378de0f7684430f29ffc86a149d9b0", "sha256": "47492fad8c3ce842275579ad036398bf847373f96cf48573c2896e2207a48435" }, "downloads": -1, "filename": "astunparse-1.1.0.tar.gz", "has_sig": false, "md5_digest": "36378de0f7684430f29ffc86a149d9b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10775, "upload_time": "2014-04-01T08:47:49", "url": "https://files.pythonhosted.org/packages/fc/bf/20efb80ee82b858aede97b07c60cbd6ea0c079f8ce913d8c44868d5f8225/astunparse-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "335d7b806a64e6bcb4111e5936eab479", "sha256": "38824c348888b9c5490ac86a50a29484a4a3b3642a0c13328dd0c988f6f3d3f5" }, "downloads": -1, "filename": "astunparse-1.2.0.tar.gz", "has_sig": false, "md5_digest": "335d7b806a64e6bcb4111e5936eab479", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11993, "upload_time": "2014-04-03T06:53:25", "url": "https://files.pythonhosted.org/packages/6c/31/5f707422451033ca303efc0a77cddeff5898d0854dfd754a74c6f647798b/astunparse-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "1621da3bd389370137094e5386686a17", "sha256": "bb8bd1c9606ce23d0acfe5ee197cea1bb8613fefa3dc7aa5e58e21cceb0eb11b" }, "downloads": -1, "filename": "astunparse-1.2.1.tar.gz", "has_sig": false, "md5_digest": "1621da3bd389370137094e5386686a17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12008, "upload_time": "2014-04-26T22:07:33", "url": "https://files.pythonhosted.org/packages/a3/29/be0ab59e92bfa785037ebd72d40ecf9182ad59f05fe6de7797edab66d00e/astunparse-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "55169bfc61c70b40cf0e85382872b40e", "sha256": "2290514dab07a69078176beceda146c82afc0fc8fb294fbccf9f23bbfafc2e13" }, "downloads": -1, "filename": "astunparse-1.2.2.tar.gz", "has_sig": false, "md5_digest": "55169bfc61c70b40cf0e85382872b40e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12006, "upload_time": "2014-06-15T12:47:17", "url": "https://files.pythonhosted.org/packages/a8/0b/0a413dd4781abc0c088ec3a2c4fd3526ad382f796d8040cdf779c5a3446e/astunparse-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "2783b5175917da7786687cd9ce033dca", "sha256": "9ee11b7cfdc24c4068d1d2748a434a96d6acdcf8c12ae207ce53c94b427bd4ed" }, "downloads": -1, "filename": "astunparse-1.3.0.tar.gz", "has_sig": false, "md5_digest": "2783b5175917da7786687cd9ce033dca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12144, "upload_time": "2016-01-17T13:12:45", "url": "https://files.pythonhosted.org/packages/14/80/c48ae086cd947f0b0d18086d7d76cedc5b2422339ff0c78adc95648b6c73/astunparse-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "aee1c499837ceb44d7e75ffe13e8e0a8", "sha256": "0b7bb5d97da357eae4a81b6df8ee0c962e0c509d56a2523cdfeceafd59e05ccb" }, "downloads": -1, "filename": "astunparse-1.4.0.tar.gz", "has_sig": false, "md5_digest": "aee1c499837ceb44d7e75ffe13e8e0a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12306, "upload_time": "2016-06-23T22:04:26", "url": "https://files.pythonhosted.org/packages/79/16/ee6a5100f0a13e9adfc7737aa7aeda199bae954bc2c7fcccac44e0c2da58/astunparse-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "48e5a5ac18cedf7e0fb6b60017f48f66", "sha256": "699911dd43824de7444624a6731a258689702e008b2e344b98df5c480800ede3" }, "downloads": -1, "filename": "astunparse-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48e5a5ac18cedf7e0fb6b60017f48f66", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11736, "upload_time": "2017-02-05T02:38:41", "url": "https://files.pythonhosted.org/packages/8b/ea/d38686f1718e307d83673d905dcffd142640a31a217e4e76d1de78f21b20/astunparse-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a3fe3daf2deea242137af36463e44b9", "sha256": "55df3c2a659d6cb6a9a9041c750a8232a9925523405a8dfeb891b92d45a589cd" }, "downloads": -1, "filename": "astunparse-1.5.0.tar.gz", "has_sig": false, "md5_digest": "5a3fe3daf2deea242137af36463e44b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12722, "upload_time": "2017-02-05T02:38:43", "url": "https://files.pythonhosted.org/packages/1a/b7/3ba7ce33cbc8847e20ed1a4fbec2303a71b2512dec0194824e8dcaadc8de/astunparse-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "5f1bc8cad5673d44aa4951759c4284f2", "sha256": "a9701ec06a8be16978141b901d99609f86f479781a5bfc4a98139aceaffb85f9" }, "downloads": -1, "filename": "astunparse-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5f1bc8cad5673d44aa4951759c4284f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9735, "upload_time": "2018-09-30T21:47:17", "url": "https://files.pythonhosted.org/packages/0a/c3/7994a969a543a11d12a69e451ddf2b4efc9c89d1bebb0db858e39264c8fe/astunparse-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "810a07ff2f011e2bf1f26d800849c31e", "sha256": "1dae2a4c53e9bc6201dd7d6c08b318abf67a1150c40de116a7ea12997472036b" }, "downloads": -1, "filename": "astunparse-1.6.0.tar.gz", "has_sig": false, "md5_digest": "810a07ff2f011e2bf1f26d800849c31e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12981, "upload_time": "2018-09-30T21:47:19", "url": "https://files.pythonhosted.org/packages/ca/b7/9854f0175377949c1c6c10ae7580f0610d68fd4b5963e46b3e389ca92be6/astunparse-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "4239335a1c02051ec8e2ddb49f8f71bc", "sha256": "dd4b33f553f5c3ec7a507a62c7111c65ae8e7ce330d0efc83d7f45fce3aad897" }, "downloads": -1, "filename": "astunparse-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4239335a1c02051ec8e2ddb49f8f71bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9953, "upload_time": "2018-10-03T09:02:43", "url": "https://files.pythonhosted.org/packages/0d/9d/1576217f67e7420f5945c15c6afd7045178c4850b148741bdbdbdabbf40e/astunparse-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f40c58299e4622f6e8781e8765d6c846", "sha256": "d27b16fb33dea0778c5a2c01801554eae0d3f8a8d6f604f15627589c3d6f11ca" }, "downloads": -1, "filename": "astunparse-1.6.1.tar.gz", "has_sig": false, "md5_digest": "f40c58299e4622f6e8781e8765d6c846", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13295, "upload_time": "2018-10-03T09:02:44", "url": "https://files.pythonhosted.org/packages/14/53/3b080b8cff6a439d4371fcd02656b94b7325203b5c7f8cacc4789117b052/astunparse-1.6.1.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "0715f1e6e8f991e2b294d5c1201b13fe", "sha256": "271fb1f3d7a2e3c66eab41000298860f046253d22ec96e4f024cfaf266805a8e" }, "downloads": -1, "filename": "astunparse-1.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0715f1e6e8f991e2b294d5c1201b13fe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12479, "upload_time": "2019-01-19T18:00:55", "url": "https://files.pythonhosted.org/packages/2e/37/5dd0dd89b87bb5f0f32a7e775458412c52d78f230ab8d0c65df6aabc4479/astunparse-1.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d624e380204d30ccf055205bff2bd34", "sha256": "dab3e426715373fd76cd08bb1abe64b550f5aa494cf1e32384f26fd60961eb67" }, "downloads": -1, "filename": "astunparse-1.6.2.tar.gz", "has_sig": false, "md5_digest": "0d624e380204d30ccf055205bff2bd34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16339, "upload_time": "2019-01-19T18:00:57", "url": "https://files.pythonhosted.org/packages/f4/f4/e3e126cfea7dbf802d8610115beac62f4baaff55c40614442844b4efe0d6/astunparse-1.6.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0715f1e6e8f991e2b294d5c1201b13fe", "sha256": "271fb1f3d7a2e3c66eab41000298860f046253d22ec96e4f024cfaf266805a8e" }, "downloads": -1, "filename": "astunparse-1.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0715f1e6e8f991e2b294d5c1201b13fe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12479, "upload_time": "2019-01-19T18:00:55", "url": "https://files.pythonhosted.org/packages/2e/37/5dd0dd89b87bb5f0f32a7e775458412c52d78f230ab8d0c65df6aabc4479/astunparse-1.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d624e380204d30ccf055205bff2bd34", "sha256": "dab3e426715373fd76cd08bb1abe64b550f5aa494cf1e32384f26fd60961eb67" }, "downloads": -1, "filename": "astunparse-1.6.2.tar.gz", "has_sig": false, "md5_digest": "0d624e380204d30ccf055205bff2bd34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16339, "upload_time": "2019-01-19T18:00:57", "url": "https://files.pythonhosted.org/packages/f4/f4/e3e126cfea7dbf802d8610115beac62f4baaff55c40614442844b4efe0d6/astunparse-1.6.2.tar.gz" } ] }