Skip to main content

astor – AST observe/rewrite

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

Release files for astor 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for astor 0.8.1
File Size Uploaded
astor-0.8.1.tar.gz 35.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for astor 0.8.1
File Interpreter ABI Platform
astor-0.8.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 62.6 kB

Release files / astor-0.8.1.tar.gz

Download URL astor-0.8.1.tar.gz
Size 35.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e
BLAKE2b-256 checksum
How to use checksums
5a2175b771132fee241dfe601d39ade629548a9626d1d39f333fde31bc46febe
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / astor-0.8.1-py2.py3-none-any.whl

Download URL astor-0.8.1-py2.py3-none-any.whl
Size 27.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5
BLAKE2b-256 checksum
How to use checksums
c38897eef84f48fa04fbd6750e62dcceafba6c63c81b7ac1420856c8dcc0a3f9
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6

2 release files

0.5

2 release files

0.4.1

2 release files

0.4

2 release files

0.3

1 release file

0.2.1

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page