Skip to main content

Read/rewrite/write Python ASTs

Project description

PyPI:

https://pypi.org/project/astor/

Documentation:

https://astor.readthedocs.io

Source:

https://github.com/berkerpeksag/astor

License:

3-clause BSD

Build status:
Travis CI

astor is designed to allow easy manipulation of Python source via the AST.

There are some other similar libraries, but astor focuses on the following areas:

  • Round-trip an AST back to Python [1]:

    • Modified AST doesn’t need linenumbers, ctx, etc. or otherwise be directly compileable for the round-trip to work.

    • Easy to read generated code as, well, code

    • Can round-trip two different source trees to compare for functional differences, using the astor.rtrip tool (for example, after PEP8 edits).

  • Dump pretty-printing of AST

    • Harder to read than round-tripped code, but more accurate to figure out what is going on.

    • Easier to read than dump from built-in AST module

  • Non-recursive treewalk

    • Sometimes you want a recursive treewalk (and astor supports that, starting at any node on the tree), but sometimes you don’t need to do that. astor doesn’t require you to explicitly visit sub-nodes unless you want to:

    • You can add code that executes before a node’s children are visited, and/or

    • You can add code that executes after a node’s children are visited, and/or

    • You can add code that executes and keeps the node’s children from being visited (and optionally visit them yourself via a recursive call)

    • Write functions to access the tree based on object names and/or attribute names

    • Enjoy easy access to parent node(s) for tree rewriting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

astor-0.8.1.tar.gz (35.1 kB view details)

Uploaded Source

Built Distribution

astor-0.8.1-py2.py3-none-any.whl (27.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file astor-0.8.1.tar.gz.

File metadata

  • Download URL: astor-0.8.1.tar.gz
  • Upload date:
  • Size: 35.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/2.7.14

File hashes

Hashes for astor-0.8.1.tar.gz
Algorithm Hash digest
SHA256 6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e
MD5 83ab4ee6598f0381d94ed6949a6d6da2
BLAKE2b-256 5a2175b771132fee241dfe601d39ade629548a9626d1d39f333fde31bc46febe

See more details on using hashes here.

File details

Details for the file astor-0.8.1-py2.py3-none-any.whl.

File metadata

  • Download URL: astor-0.8.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/2.7.14

File hashes

Hashes for astor-0.8.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5
MD5 a43c3b3dee5b722633589c5a37774feb
BLAKE2b-256 c38897eef84f48fa04fbd6750e62dcceafba6c63c81b7ac1420856c8dcc0a3f9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page