字节码和AST编程工具
项目描述
Meta
一个纯Python模块,包含用于操作和分析Python抽象语法树和字节码的框架。
示例
这显示了如何在Python内部将Python源代码转换为代码对象,并将其再转换回Python源代码
import meta, ast
source = '''
a = 1
b = 2
c = (a ** b)
'''
mod = ast.parse(source, '<nofile>', 'exec')
code = compile(mod, '<nofile>', 'exec')
mod2 = meta.decompile(code)
source2 = meta.dump_python_source(mod2)
assert source == source2
这显示了depyc脚本的示例。脚本自己编译,然后编译后的脚本提取自己
DEPYC_FILE=`python -c"import meta.scripts.depyc; print meta.scripts.depyc.__file__"`
depyc $DEPYC_FILE --pyc > depycX.pyc
python -m depycX depycX.pyc --python > depycX.py
echo depycX.py
注意
Meta符合python3规范(大部分)
错误
反编译器目前还不支持复杂列表/集合/字典 - 生成器
测试
python -m unittest discover meta
test
版本控制
从版本1.0.0开始,Meta遵循 语义版本控制。版本X.Y.Z表示
X是主版本(不向后兼容),
Y是次版本(向后兼容),
Z是修补版本(向后兼容的bug修复)。
版本1.0.0之前,使用了自定义版本控制方案。
项目详情
关闭
meta-1.0.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 35bbd24f212c09e04836ef4cac3e3a0e16e24e89e5452c6072a517bf674b0676 |
|
MD5 | 692cedf8322dde634d372192bef19131 |
|
BLAKE2b-256 | 784ebf6414dd628664eee7d03831f36fe9ffd43708c36c8bd43ae56ebe7cd69d |