Created by: Aurelius84
随着python版本的迭代和诸多新特性的增加,不同python版本的代码,ast库解析出的抽象语法树AST结果也不相同。在动态图转静态图中,为了更好地的处理python版本兼容问题,采用gast
库作为中间AST解析库。
此PR主要将ast
替换为了gast
,并通过对有差异性的AST节点进行修改,测试gast
统一表示AST对Python版本的兼容效果。 包括:
- 函数参数:PY2下为
ast.Name
,PY3下为ast.arg
,在gast
中统一表示为gast.Name
- with语法:PY2下为
context_expr/optional_vars
,PY3下为ast.With.items.withitem
,在gast
统一表示为gast.With.items.withitem
- Call部分属性:PY下为
starargs/kwargs
,PY3下为Starred/keyword
,在gast
统一表示为gast.Starred/keyword