Skip to main content

Read/rewrite/write Python ASTs

Project description

PyPI:

https://pypi.python.org/pypi/astor

Documentation:

http://astor.rtfd.org/

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 back to Python via Armin Ronacher’s codegen.py module:

    • Modified AST doesn’t need linenumbers, ctx, etc. or otherwise be directly compileable

    • Easy to read generated code as, well, code

  • 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.4.1.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

astor-0.4.1-py2.py3-none-any.whl (12.7 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: astor-0.4.1.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for astor-0.4.1.tar.gz
Algorithm Hash digest
SHA256 df38bb923b9111b873f1b812f5f4932110ead7c7dd8b4734d9eb7968c074d9b0
MD5 f54012510114b8702c4a7ca082b6ddc1
BLAKE2b-256 4dced1c963a46334af11aa17fbf15b8d02fcb8cc208573930e74671e4bc0e7fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for astor-0.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e045c680904bda96373cf36b56a698947625fe33d51219b3cbea82a36fb72dfb
MD5 db6e577e295a0c0642d9aaabd157e3b3
BLAKE2b-256 0aefbab2d423a3af8e9aa450c89dbf504fb143b7de193eb60658d9564f90bf3e

See more details on using hashes here.

Supported by

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