跳转到主要内容

使用源代码位置注释AST树

项目描述

https://img.shields.io/pypi/v/asttokens.svg https://img.shields.io/pypi/pyversions/asttokens.svg https://github.com/gristlabs/asttokens/actions/workflows/build-and-test.yml/badge.svg https://readthedocs.org/projects/asttokens/badge/?version=latest https://coveralls.io/repos/github/gristlabs/asttokens/badge.svg

asttokens 模块使用生成它们的源代码中标记和文本的位置来注释Python抽象语法树(AST)。

这使得逻辑AST节点的工作工具能够找到导致这些节点的特定文本,例如用于自动化重构或高亮显示。

安装

asttokens可在PyPI上找到:https://pypi.python.org/pypi/asttokens/

pip install asttokens

代码位于GitHub上: https://github.com/gristlabs/asttokens

API参考在此: http://asttokens.readthedocs.io/en/latest/api-index.html

用法

ASTTokens与Python2和Python3兼容。

ASTTokens可以注解由astastroid构建的树。

以下是一个示例

import asttokens, ast
source = "Robot('blue').walk(steps=10*n)"
atok = asttokens.ASTTokens(source, parse=True)

一旦树被标记,节点将获得 .first_token.last_token 属性,而 ASTTokens 对象提供了有用的方法

attr_node = next(n for n in ast.walk(atok.tree) if isinstance(n, ast.Attribute))
print(atok.get_text(attr_node))
start, end = attr_node.last_token.startpos, attr_node.last_token.endpos
print(atok.text[:start] + 'RUN' + atok.text[end:])

这将产生以下输出

Robot('blue').walk
Robot('blue').RUN(steps=10*n)

ASTTokens 对象还提供了遍历和搜索构成代码(或特定AST节点)的令牌列表的方法,这比直接处理文本更有用且功能更强大。

贡献

要贡献

  1. 将该仓库Fork,并克隆您的Fork。

  2. 使用以下命令安装具有测试依赖项的包(理想情况下在虚拟环境中):

    pip install -e '.[test]'
  3. 使用命令 pytestpython -m pytest 在您的当前解释器中运行测试。

  4. 使用 tox 命令跨所有支持的解释器运行测试。您需要单独安装这些解释器。我们建议使用 pyenv 来实现这一点。使用 tox -p auto 来并行运行测试。

  5. 默认情况下,某些运行时间非常长的测试被跳过,但在travis CI上运行。要在本地运行它们,请设置环境变量 ASTTOKENS_SLOW_TESTS。例如,运行 ASTTOKENS_SLOW_TESTS=1 tox 以运行完整的测试套件。

下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

asttokens-2.4.1.tar.gz (62.3 kB 查看散列)

上传时间

构建分布

asttokens-2.4.1-py2.py3-none-any.whl (27.8 kB 查看散列)

上传时间 Python 2 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面