跳转到主要内容

字节码和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 (49.3 kB 查看哈希值)

上传时间

支持