跳转到主要内容

Python的AST反解析器

项目描述

https://badge.fury.io/py/astunparse.png https://travis-ci.org/simonpercivall/astunparse.png?branch=master https://readthedocs.org/projects/astunparse/badge/

Python的AST反解析器。

这是从Python源代码分发中提取出来的unparse版本;在Python 2中的Demo/parser下,在Python 3中的Tools/parser下。

基本示例

import inspect
import ast
import astunparse

# get back the source code
astunparse.unparse(ast.parse(inspect.getsource(ast)))

# get a pretty-printed dump of the AST
astunparse.dump(ast.parse(inspect.getsource(ast)))

此库与Python 2.6至Python 3.5的单源兼容。它由Python核心开发者编写;我仅仅合并了Python 2.7和Python 3.5的源代码和测试套件,并添加了一个包装器。这种提取是为了提供一个支持两个版本的库实现。

此外,还增加了一个格式化打印的dump实用函数。

测试套件既运行特定测试,也回绕大量标准库。

扩展和替代品

类似的项目包括

这些项目中的任何一个都无法回绕大量标准库,并且在test_unparse测试套件中的基本测试中失败。

此库使用成熟和核心维护的代码,而不是尝试修补现有库。unparse和test_unparse模块在PSF许可证下。

扩展包括

  • typed-astunparse:扩展astunparse以支持类型注解。

  • 文档:[http://astunparse.rtfd.org](http://astunparse.rtfd.org)。

功能

  • 解析Python AST。

  • 美化打印AST。

变更日志

以下是AST Unparser最近的变化。

1.6.3 - 2019-12-22

  • 添加对Python 3.8的全支持

1.6.2 - 2019-01-19

  • 添加对Python 3.8中Constant节点的支持

  • 向sdist添加测试

1.6.1 - 2018-10-03

  • 修复非常复杂的f-string的往返问题。

1.6.0 - 2018-09-30

  • Python 3.7兼容性

1.5.0 - 2017-02-05

  • Python 3.6兼容性

  • 错误修复:修正argparser选项类型

1.4.0 - 2016-06-24

  • 支持async关键字

  • 支持“交互式”和“表达式”节点的反解析

1.3.0 - 2016-01-17

  • Python 3.5兼容性

1.2.0 - 2014-04-03

  • Python 2.6至3.4兼容性

  • 添加了一个名为dump的新函数,用于返回AST的美化打印版本。当运行python -m astunparse作为--dump参数时,它也是可用的。

1.1.0 - 2014-04-01

  • unparse将返回AST的源代码。它功能齐全,往返stdlib,且与Python 2.7和Python 3.4兼容。

    运行python -m astunparse将打印给定任何Python文件的往返源代码。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

astunparse-1.6.3.tar.gz (18.3 kB 查看哈希值)

上传时间 源代码

构建分发

astunparse-1.6.3-py2.py3-none-any.whl (12.7 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面