键入astuparse是键入ast,正如键入astuparse是键入ast一样

typed-astunparse的Python项目详细描述


python 3抽象语法树(asts)的unparser,带有类型注释。

package version from PyPIbuild status from Travis CIbuild status from AppVeyorgrade from Codacytest coverage from Codecovlicense

类型的astuparse类型的ast的,因为astuparseast的。简而言之:python的解组 3个带有类型注释的抽象语法树(AST)。

为什么创建此模块

内置的ast模块可以将python源代码解析为ast,但不能生成源代码 来自AST的代码。astuparse模块(使用模糊的重构版本 在正式的python存储库中找到的脚本)为本机 Python阿斯特。

但是,astastuparse模块都完全忽略 政治公众人物484。它们将它们视为所有其他注释,因此当您使用 compile(),您的类型注释将丢失。在AST没有他们的位置,所以 显然,它们也不能被拆穿。

typed ast模块提供更新的ast,包括pep 484和 包含此类注释的python代码的解析器。

不幸的是,typed ast没有提供从ast返回类型为的源代码的任何方法 评论。这就是创建模块typed astuparse的原因:提供unparser 对于在类型的ast中定义的ast。

用法

从代码到ast到代码的往返示例:

importtyped_ast.ast3importtyped_astunparsecode='my_string = None  # type: str'roundtrip=typed_astunparse.unparse(typed_ast.ast3.parse(code))print(roundtrip)

这将打印:

my_string=None# type: str

有关更多示例,请参见examples.ipynb笔记本。

安装

对于最简单的安装使用pip

pip3 install typed-astunparse

您也可以构建自己的版本:

git clone https://github.com/mbdevpl/typed-astunparse
cd typed-astunparse
pip3 install -U test_requirements.txt
python3 -m unittest  # make sure the tests pass
python3 setup.py bdist_wheel
pip3 install dist/*.whl

要求

python 3.5或更高版本。

requirements.txt中指定的python库。

生成和运行测试还需要test_requirements.txt中列出的包。

在Linux、OS X和Windows上测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为扫描器的输入生成字符序列   hibernate中的java实体合并   如何使变量在Java文件中成为全局变量   java JVM崩溃“异常访问冲突”   向MediaMetadataRetriever中的setDataSource()发送Uri时发生java IllegalArgumentException   java没有节约协议?   用户界面java gui帮助actionlistener   java索引越界异常,即使大小小于索引?   在C++中使用java的困惑   在普通java编码中插入图像   JDBC上的java缓存数据   在Java中,在字符串的特定位置替换子字符串   java在运行elasticsearch集群时遇到Perm Gen空间问题   java Soap故障跟踪   java拆分器。固定长度(int)。拆分(字符串)   java获取jar内部包的路径