Toolbox for working with the Python AST
Project description
Toolbox for working with the Python AST
pip install ast_tools
Useful References
Macros
Loop Unrolling
Unroll loops using the pattern
for <var> in ast_tools.macros.unroll(<iter>):
...
<iter>
should be an iterable object that produces integers (e.g. range(8)
)
that can be evaluated at definition time (can refer to variables in the scope
of the function definition)
For example,
from ast_tools.passes import begin_rewrite, loop_unroll, end_rewrite
@end_rewrite()
@loop_unroll()
@begin_rewrite()
def foo():
for i in ast_tools.macros.unroll(range(8)):
print(i)
is rewritten into
def foo():
print(0)
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
You can also use a list of int
s, here's an example that also uses a reference
to a variable defined in the outer scope:
from ast_tools.passes import begin_rewrite, loop_unroll, end_rewrite
j = [1, 2, 3]
@end_rewrite()
@loop_unroll()
@begin_rewrite()
def foo():
for i in ast_tools.macros.unroll(j):
print(i)
becomes
def foo():
print(1)
print(2)
print(3)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file ast_tools-0.0.13-py3-none-any.whl
.
File metadata
- Download URL: ast_tools-0.0.13-py3-none-any.whl
- Upload date:
- Size: 21.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5657ac343993b5b414b316b1c074111a86455dd22632655d06d14e1383d7aad5 |
|
MD5 | 3fd99700c6a0705a1c5aa3b32c0595b1 |
|
BLAKE2b-256 | 2a77d89e000616dfa0859564c452c1444369a1d3b85f36c95443fe4aad03d857 |