基于`compiler.ast`抽象语法树的Python源代码生成器。
项目描述
概述
此包提供了一个模块级源代码生成器,它操作于内置的`compiler.ast`模块的AST。
请注意,此AST与Python 2.6中的新`ast`模块不兼容。
用法
生成器在AST解析树上工作。
>>> from compiler import parse >>> tree = parse("""\ ... print 'Hello, world!' ... """)
现在我们可以使用源代码生成器生成与原始代码等效的Python代码。
>>> from sourcecodegen import ModuleSourceCodeGenerator >>> generator = ModuleSourceCodeGenerator(tree) >>> print generator.getSourceCode() print 'Hello, world!'
变更日志
0.6.14(发布于2011年5月19日)
修复了在子脚本上下文之外出现的ast.Sliceobj问题(这是一个不寻常的结构,不幸的是,Python的旧AST编译器可以理解它,但无法从源代码中重现)。
此问题影响至少Zope的RestrictedPython包。[malthe]
修复了具有文档字符串和函数体的函数会得到不正确缩进的问题。[malthe]
0.6.13(发布日期:2011年2月28日)
增加了对函数文档字符串的支持。[malthe]
0.6.12(发布日期:2010年1月12日)
在LICENSE.txt中添加了repoze许可文本,并得到作者许可。http://lists.repoze.org/pipermail/repoze-dev/2010-January/002554.html [jinty]
0.6.11(发布日期:2009年7月15日)
增加了对三目运算符(Python 2.5+)的支持。[malthe]
0.6.10(发布日期:2009年7月6日)
修复了赋值表达式中节点和表达式的顺序问题。[malthe]
0.6.9(发布日期:2009年5月19日)
修复了有时变量关键字参数处理不正确的问题。[malthe]
修复了身份运算符处理不正确的问题。[malthe]
0.6.8(发布日期:2009年5月18日)
修复了删除运算符未被当作语句处理的问题。[malthe]
0.6.7(发布日期:2009年4月22日)
修复了星号和双星号参数打印时没有带‘*’和‘**’前缀的问题。[malthe]
0.6.6(发布日期:2009年4月17日)
修复了语句中多次丢弃元素会得到错误缩进的问题。[malthe]
0.6.5(发布日期:2009年2月19日)
修复了模块文档字符串会导致不希望的缩进的问题。[malthe]
0.6.4(发布日期:2009年1月24日)
添加了生成代码的便利方法。[malthe]
0.6.3(发布日期:2008年12月18日)
允许在Python 2.4下正确运行(try/finally修复)。[chrism]
0.6.2(发布日期:2008年12月14日)
修复了lambda块缩进错误的问题;现在函数体总是被正确清除。[malthe]
0.6.1(发布日期:2008年12月13日)
修复了在某些情况下生成器不会被优先考虑的问题。[malthe]
0.6(发布日期:2008年12月13日)
现在考虑了运算符优先级,这样我们可以避免不必要的括号使用。这不仅是出于美观考虑,更重要的是为了避免由于Python的嵌套限制而导致的解析错误。[malthe]
0.5(发布日期:2008年11月28日)
添加了yield和一元运算符。[malthe]
0.4(发布日期:2008年11月28日)
确保所有二元运算符周围都有括号;我们可能在将来能够在这方面做得更好(出于可读性考虑)。[malthe]
0.3(发布日期:2008年11月27日)
添加了逻辑运算符。[malthe]
修复了元组解包问题。[malthe]
添加了for循环。[malthe]
0.2(发布日期:2008年11月27日)
修复了元组和括号的问题。[malthe]
修复了多重赋值问题。[malthe]
添加了对not运算符的支持。[malthe]
修复了如果没有非关键字参数时,默认参数会被错误书写的问题。[malthe]
修复了语句不会被正确清除的问题。[malthe]
赋值是语句,应该终止。[malthe]
0.1(发布日期:2008年11月26日)
初始发布。
项目详情
sourcecodegen-0.6.14.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f71971ed2d1bb188f4ca17e123bd34dca6314287726d19fc1ae5f2f0c0c6c5c3 |
|
MD5 | cb3f3fd1066e9b419f6b55a7d0a29dfd |
|
BLAKE2b-256 | 498f2c3657f3b7dc1377510dfb7b286998c4a78ec25d84073a81c4d97b49b7e7 |