使用源代码位置注释AST树
项目描述
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可以注解由ast和astroid构建的树。
以下是一个示例
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节点)的令牌列表的方法,这比直接处理文本更有用且功能更强大。
贡献
要贡献
将该仓库Fork,并克隆您的Fork。
使用以下命令安装具有测试依赖项的包(理想情况下在虚拟环境中):
pip install -e '.[test]'
使用命令 pytest 或 python -m pytest 在您的当前解释器中运行测试。
使用 tox 命令跨所有支持的解释器运行测试。您需要单独安装这些解释器。我们建议使用 pyenv 来实现这一点。使用 tox -p auto 来并行运行测试。
默认情况下,某些运行时间非常长的测试被跳过,但在travis CI上运行。要在本地运行它们,请设置环境变量 ASTTOKENS_SLOW_TESTS。例如,运行 ASTTOKENS_SLOW_TESTS=1 tox 以运行完整的测试套件。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
asttokens-2.4.1.tar.gz的散列
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0 |
|
MD5 | c353679585a40f43c24ca60fca33bbf6 |
|
BLAKE2b-256 | 451df03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81 |
asttokens-2.4.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 |
|
MD5 | bbb66ba09cc57fb86efffc3164ed238b |
|
BLAKE2b-256 | 45864736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a |