文件名称:ast_tools:使用Python AST的工具箱
文件大小:55KB
文件格式:ZIP
更新时间:2024-05-24 09:21:02
python ast ast-tools Python
使用Python AST的工具箱 pip install ast_tools 有用的参考 通行证 ast_tools提供了许多用于重写函数和类的过程(也可以在模块级别工作,但是不存在这样的过程)。 通行证与apply_passes装饰器一起应用: @ apply_passes ([ pass1 (), pass2 ()]) def foo (...): ... 每次传递都将AST,环境和元数据作为参数,并返回(可能是)每个AST的修改版本。 apply_passes通过首先查找装饰对象的ast并收集尝试从调用站点收集本地和全局变量以构建环境的尝试来开始一连串的重写。 运行apply_passes所有重写后, apply_passes序列化并执行重写的ast。 知道问题 收集AST apply_passes依赖inspect.getsource来获取修饰后的定义的源(然后对其进行解析
【文件预览】:
ast_tools-master
----.gitignore(47B)
----README.md(4KB)
----tests()
--------test_visitors.py(2KB)
--------test_unroll.py(4KB)
--------test_stack.py(2KB)
--------test_ssa.py(10KB)
--------test_cse.py(526B)
--------test_assert_remover.py(418B)
--------test_normalizers.py(2KB)
--------test_immutable_ast.py(3KB)
--------test_if_to_phi.py(1KB)
--------test_bool_to_bit.py(822B)
--------test_passes.py(3KB)
--------test_inline.py(3KB)
--------test_common.py(2KB)
--------test_pattern.py(1KB)
----ast_tools()
--------macros.py(252B)
--------common.py(6KB)
--------metadata()
--------utils.py(4KB)
--------visitors()
--------__init__.py(177B)
--------transformers()
--------stack.py(4KB)
--------passes()
--------pattern.py(3KB)
--------cst_utils()
----setup.py(2KB)
----.travis.yml(1KB)
----util()
--------generate_ast()