{ "info": { "author": "Anthony Sottile", "author_email": "asottile@umich.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "[![Build Status](https://travis-ci.org/asottile/astpretty.svg?branch=master)](https://travis-ci.org/asottile/astpretty)\n[![Coverage Status](https://coveralls.io/repos/github/asottile/astpretty/badge.svg?branch=master)](https://coveralls.io/github/asottile/astpretty?branch=master)\n\nastpretty\n=========\n\nPretty print the output of python stdlib `ast.parse`.\n\nastpretty is intended to be a replacement for `ast.dump`.\n\n## Installation\n\n`pip install astpretty`\n\n\n## Usage\n\n`astpretty` provides two api functions:\n\n\n### `astpretty.pprint(node, indent=FOUR_SPACE_INDENT, show_offsets=True)`\n\nPrint a representation of the ast node.\n\n```python\n>>> astpretty.pprint(ast.parse('if x == y: y += 4').body[0])\nIf(\n lineno=1,\n col_offset=0,\n test=Compare(\n lineno=1,\n col_offset=3,\n left=Name(lineno=1, col_offset=3, id='x', ctx=Load()),\n ops=[Eq()],\n comparators=[Name(lineno=1, col_offset=8, id='y', ctx=Load())],\n ),\n body=[\n AugAssign(\n lineno=1,\n col_offset=11,\n target=Name(lineno=1, col_offset=11, id='y', ctx=Store()),\n op=Add(),\n value=Num(lineno=1, col_offset=16, n=4),\n ),\n ],\n orelse=[],\n)\n```\n\n`indent` allows control over the indentation string:\n\n```python\n>>> astpretty.pprint(ast.parse('if x == y: y += 4').body[0], indent=' ')\nIf(\n lineno=1,\n col_offset=0,\n test=Compare(\n lineno=1,\n col_offset=3,\n left=Name(lineno=1, col_offset=3, id='x', ctx=Load()),\n ops=[Eq()],\n comparators=[Name(lineno=1, col_offset=8, id='y', ctx=Load())],\n ),\n body=[\n AugAssign(\n lineno=1,\n col_offset=11,\n target=Name(lineno=1, col_offset=11, id='y', ctx=Store()),\n op=Add(),\n value=Num(lineno=1, col_offset=16, n=4),\n ),\n ],\n orelse=[],\n)\n```\n\n`show_offsets` controls whether the output includes line / column information:\n\n```python\n>>> astpretty.pprint(ast.parse('x += 5').body[0], show_offsets=False)\nAugAssign(\n target=Name(id='x', ctx=Store()),\n op=Add(),\n value=Num(n=5),\n)\n```\n\n### `astpretty.pformat(node, indent=FOUR_SPACE_INDENT, show_offsets=True)`\n\nReturn a string representation of the ast node.\n\nArguments are identical to `astpretty.pprint`.\n\n```python\n>>> astpretty.pformat(ast.parse('if x == y: y += 4').body[0])\n\"If(\\n lineno=1,\\n col_offset=0,\\n test=Compare(\\n lineno=1,\\n col_offset=3,\\n left=Name(lineno=1, col_offset=3, id='x', ctx=Load()),\\n ops=[Eq()],\\n comparators=[Name(lineno=1, col_offset=8, id='y', ctx=Load())],\\n ),\\n body=[\\n AugAssign(\\n lineno=1,\\n col_offset=11,\\n target=Name(lineno=1, col_offset=11, id='y', ctx=Store()),\\n op=Add(),\\n value=Num(lineno=1, col_offset=16, n=4),\\n ),\\n ],\\n orelse=[],\\n)\"\n```\n\n### Comparison with stdlib `ast.dump`\n\n```python\n>>> print(ast.dump(ast.parse('if x == y: y += 4').body[0]))\nIf(test=Compare(left=Name(id='x', ctx=Load()), ops=[Eq()], comparators=[Name(id='y', ctx=Load())]), body=[AugAssign(target=Name(id='y', ctx=Store()), op=Add(), value=Num(n=4))], orelse=[])\n```\n\n### `typed-ast` support\n\n`astpretty` works with [typed-ast](https://github.com/python/typed_ast)!\n\nFor usage with `typed-ast` make sure you have `typed-ast` installed, a\nconvenient way to do this is with the `typed` extra to `astpretty`:\n\n```bash\npip install astpretty[typed]\n```\n\nThe apis above work equally well with the return values from the `ast` modules\nprovided by `typed_ast`:\n\n```pycon\n>>> import astpretty\n>>> from typed_ast import ast3\n>>> astpretty.pprint(ast3.parse('x = 4 # type: int'))\nModule(\n body=[\n Assign(\n lineno=1,\n col_offset=0,\n targets=[Name(lineno=1, col_offset=0, id='x', ctx=Store())],\n value=Num(lineno=1, col_offset=4, n=4),\n type_comment='int',\n ),\n ],\n type_ignores=[],\n)\n```\n\nWith `typed-ast` installed, the commandline interface adds `--typed-27` and\n`--typed-3` options for using the alternative ast parsers:\n\n```console\n$ astpretty --typed-3 t.py\nModule(\n body=[\n Assign(\n lineno=1,\n col_offset=0,\n targets=[Name(lineno=1, col_offset=0, id='x', ctx=Store())],\n value=Num(lineno=1, col_offset=4, n=4),\n type_comment='int',\n ),\n ],\n type_ignores=[],\n)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/asottile/astpretty", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "astpretty", "package_url": "https://pypi.org/project/astpretty/", "platform": "", "project_url": "https://pypi.org/project/astpretty/", "project_urls": { "Homepage": "https://github.com/asottile/astpretty" }, "release_url": "https://pypi.org/project/astpretty/1.6.0/", "requires_dist": [ "typed-ast ; extra == 'typed'" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "summary": "Pretty print the output of python stdlib `ast.parse`.", "version": "1.6.0" }, "last_serial": 4877783, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "f9e3a8c9f95072a4625fb564c30a2b29", "sha256": "bfad9f714383bf1123fe58bd65bc5bc5005186921a372ce28e9d0496ba08eccb" }, "downloads": -1, "filename": "astpretty-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f9e3a8c9f95072a4625fb564c30a2b29", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2752, "upload_time": "2017-03-19T23:40:39", "url": "https://files.pythonhosted.org/packages/78/cd/8da385bfc357fbd479571bfa5bad90056b57258a2c7d74281e68ca7d1c90/astpretty-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8192a7b6764a72f3919fc17bc3cdad3", "sha256": "9038ac00faf1c44bb8e702fb4aae7dbccdf4a09cf8c0fcc1991b5e88d2cc378a" }, "downloads": -1, "filename": "astpretty-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b8192a7b6764a72f3919fc17bc3cdad3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1544, "upload_time": "2017-03-19T23:40:40", "url": "https://files.pythonhosted.org/packages/27/5a/8212b9dd769f30b736be215ad8dbac18de2694fe921414a5c3a848eec837/astpretty-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "807e61ea59a2a910ab33eea3aee6021c", "sha256": "9c62c7c1613e2781e450e06c88a2182a9a66681c07e1fc8401e1c17355e5dbe2" }, "downloads": -1, "filename": "astpretty-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "807e61ea59a2a910ab33eea3aee6021c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2928, "upload_time": "2017-03-24T03:10:59", "url": "https://files.pythonhosted.org/packages/f0/2f/b2c6187913c548698dbdc9cedc57466113c29554cbdd8c6845ecd12725b6/astpretty-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a97c3f0cd7066f02edf440d839049f16", "sha256": "5cb43ca43f9b0db297475f33491b62cb45bbb0d8f8857040c44243d9e36e94a7" }, "downloads": -1, "filename": "astpretty-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a97c3f0cd7066f02edf440d839049f16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1715, "upload_time": "2017-03-24T03:11:01", "url": "https://files.pythonhosted.org/packages/29/de/675943f96e4a71b218cb339dace198e0252ccd51eec8fbfbcac475ce560e/astpretty-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "8c1531ff94027d34125cc9b06a1ba71d", "sha256": "6468c2c7cc582b893f805b2a6d85ec5fac72cebb0577b46b1ea8db944e37799b" }, "downloads": -1, "filename": "astpretty-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8c1531ff94027d34125cc9b06a1ba71d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3356, "upload_time": "2017-07-10T02:16:28", "url": "https://files.pythonhosted.org/packages/fc/94/3662f7c00c479ae8b9ba7b032daf57629d394543b6bc46846ae0a7b57cdc/astpretty-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d532da87c0f12a565ae6bcd3ea377821", "sha256": "47af632f6975f0169bcd76fb7dfb8fc8a882e6085dc76445c9db77a40301118f" }, "downloads": -1, "filename": "astpretty-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d532da87c0f12a565ae6bcd3ea377821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1926, "upload_time": "2017-07-10T02:16:29", "url": "https://files.pythonhosted.org/packages/83/d7/93d70eaac793f9cfb1c0dd099ef7c0a619857b4545da203a6ad5d2d786f0/astpretty-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e457a84d7d6693e14dd0e3f5d2965d3a", "sha256": "fc57e82d05bacd8b68c821c72873ab6b587c5a1953f088e9154d220579b686fc" }, "downloads": -1, "filename": "astpretty-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e457a84d7d6693e14dd0e3f5d2965d3a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3409, "upload_time": "2017-07-10T03:06:24", "url": "https://files.pythonhosted.org/packages/25/35/774b9153ba0fcfda0b444a09d899092bafcfa72c60fb49cb72aa08fcf961/astpretty-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da678a5684eff3c08be4962e3fe9e110", "sha256": "eca9508c826ac0a4eb2265d6a13a54ce66f89e96d766a52d3481aa64ca4d0a02" }, "downloads": -1, "filename": "astpretty-1.2.1.tar.gz", "has_sig": false, "md5_digest": "da678a5684eff3c08be4962e3fe9e110", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1969, "upload_time": "2017-07-10T03:06:25", "url": "https://files.pythonhosted.org/packages/72/7a/0a63187e9e6dc57a7282da39de19367e20ddf9122d6c8e79dec59a03cd99/astpretty-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "febb489a50811c0353fba7316fe27f96", "sha256": "63c17e871f04e0a133aecd6dac25ff5986c765712a691993c3f50655d69dd724" }, "downloads": -1, "filename": "astpretty-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "febb489a50811c0353fba7316fe27f96", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2655, "upload_time": "2018-06-10T15:54:04", "url": "https://files.pythonhosted.org/packages/5e/6a/3630d505aa6ea8aa478fcb0059e674fbcf7e02ade23789a13cd86bf87864/astpretty-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b5cfb85ad235d87dfc6f3744e0368e3", "sha256": "bde6174db13177dd889b11a41fb2891e9a907ed8dc5b55870724164d18095c0a" }, "downloads": -1, "filename": "astpretty-1.3.0.tar.gz", "has_sig": false, "md5_digest": "1b5cfb85ad235d87dfc6f3744e0368e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2782, "upload_time": "2018-06-10T15:54:05", "url": "https://files.pythonhosted.org/packages/ec/f8/72ca9bed3c78817c39de25ff55277a6f4daf5b5f62bc211a3ba70ec65599/astpretty-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "d98532b8e61a3724007579b02ef2c5e3", "sha256": "a3433a5f48a77b188fe91772234241bf5c3c73224e1bd508c1e41ce5363333f6" }, "downloads": -1, "filename": "astpretty-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d98532b8e61a3724007579b02ef2c5e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2951, "upload_time": "2018-10-01T20:46:25", "url": "https://files.pythonhosted.org/packages/e3/61/16a1e2e2bf6270513d90695ad0d442a3521ab790562901288ef272fdc91a/astpretty-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a377caccb18a81e1f9e50e880a53901", "sha256": "eba79d46b0e54100636c463a0226b2b9073c430579a8fe6f160a824711679e7c" }, "downloads": -1, "filename": "astpretty-1.4.0.tar.gz", "has_sig": false, "md5_digest": "7a377caccb18a81e1f9e50e880a53901", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3510, "upload_time": "2018-10-01T20:46:26", "url": "https://files.pythonhosted.org/packages/46/fd/b15a609b59278ed1244dd6d8503e7e819efd9f115d2b740fdf5fe758c5ff/astpretty-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "feb040c2e3e3e39a4a6baf69e2727f5e", "sha256": "0b07a2efe51ab97e936b675de80807bde8682b0c5bf31c54592a884c06d17999" }, "downloads": -1, "filename": "astpretty-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "feb040c2e3e3e39a4a6baf69e2727f5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3766, "upload_time": "2018-12-31T22:41:16", "url": "https://files.pythonhosted.org/packages/9d/10/cb0c3a3edb16f45be05bdba7f37798fcddb8cf085def8cb6e62b2ad7c711/astpretty-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b481aae55ce7cf643766bf20e52ace9", "sha256": "5159b483a0644c51fd70a0d5c3e938e133b09391e6107aa3a4399dbf3d67c4ad" }, "downloads": -1, "filename": "astpretty-1.4.1.tar.gz", "has_sig": false, "md5_digest": "8b481aae55ce7cf643766bf20e52ace9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3526, "upload_time": "2018-12-31T22:41:18", "url": "https://files.pythonhosted.org/packages/8b/eb/094c12b2b7e1acb57740d33ba56780dbdaf528483c5b8b2e4f5acd45c385/astpretty-1.4.1.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "eecc319329313891bae5d0b006d9ac28", "sha256": "1dfc23182c66144ac7d8118bb174b22f8eecb0496fdf8de20c7fa46eb7b62a5b" }, "downloads": -1, "filename": "astpretty-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eecc319329313891bae5d0b006d9ac28", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3750, "upload_time": "2019-02-27T17:01:39", "url": "https://files.pythonhosted.org/packages/97/cf/35f8266fbd648ea5b8ffeff8fe1f84107a8f1e2710f5767d4adc539f8365/astpretty-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0fc00a8eb246beb56dd6215df349950d", "sha256": "bcdaada64cf1f6b461d213f1f47d57ec1e30920d54352e5c704de039f8d86409" }, "downloads": -1, "filename": "astpretty-1.5.0.tar.gz", "has_sig": false, "md5_digest": "0fc00a8eb246beb56dd6215df349950d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3512, "upload_time": "2019-02-27T17:01:40", "url": "https://files.pythonhosted.org/packages/ce/57/468522255f1ca661bc6d0acee3711a9268843419debee2dfd10701495ca3/astpretty-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "df990d346f11f3d213c3c933fe753c3c", "sha256": "d45c06d07cbd4387aaa696cbb955d809fd6977fea8d00c9c409c1524d358cd54" }, "downloads": -1, "filename": "astpretty-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df990d346f11f3d213c3c933fe753c3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 4962, "upload_time": "2019-02-28T06:29:20", "url": "https://files.pythonhosted.org/packages/16/6c/3814ad265e04ae9cd3fc2bd3b72e80c122adffc3f2b8147d9d2897246d25/astpretty-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "022b9e05697bf29ecdb34e2236ee24dc", "sha256": "f9769a73381a9095581435d9477811b2cdd9cd4c721e2650db564624183191a1" }, "downloads": -1, "filename": "astpretty-1.6.0.tar.gz", "has_sig": false, "md5_digest": "022b9e05697bf29ecdb34e2236ee24dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 4720, "upload_time": "2019-02-28T06:29:21", "url": "https://files.pythonhosted.org/packages/bc/9f/9e26bd3220aaee813c41829e336d3fbc39a6b85bb03294f9590fdb2ddfc7/astpretty-1.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "df990d346f11f3d213c3c933fe753c3c", "sha256": "d45c06d07cbd4387aaa696cbb955d809fd6977fea8d00c9c409c1524d358cd54" }, "downloads": -1, "filename": "astpretty-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df990d346f11f3d213c3c933fe753c3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 4962, "upload_time": "2019-02-28T06:29:20", "url": "https://files.pythonhosted.org/packages/16/6c/3814ad265e04ae9cd3fc2bd3b72e80c122adffc3f2b8147d9d2897246d25/astpretty-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "022b9e05697bf29ecdb34e2236ee24dc", "sha256": "f9769a73381a9095581435d9477811b2cdd9cd4c721e2650db564624183191a1" }, "downloads": -1, "filename": "astpretty-1.6.0.tar.gz", "has_sig": false, "md5_digest": "022b9e05697bf29ecdb34e2236ee24dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 4720, "upload_time": "2019-02-28T06:29:21", "url": "https://files.pythonhosted.org/packages/bc/9f/9e26bd3220aaee813c41829e336d3fbc39a6b85bb03294f9590fdb2ddfc7/astpretty-1.6.0.tar.gz" } ] }