问题标签 [libcst]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - LibCST:将任意节点转换为代码
是否可以将任意 LibCST 节点转储到 Python 代码中?我的用例是我想提取与特定命名方案匹配的函数的代码。我可以提取FunctionDef
我需要的节点,但我似乎没有找到将它们转换为代码的方法。
python-3.x - Python Libcst:无法从访问者类中的节点生成代码
我正在寻找一种从访问者节点获取代码的方法。例子:
在上面的代码中,我想获取节点的代码(即阈值 = 1)。但似乎 libcst 不提供这种支持。我进一步环顾四周,发现了一个属于 Module的函数名code_for_node(node: libcst._nodes.base.CSTNode) → str
libcst.Module.code_for_node。但是我找不到足够的帮助来在我的代码中使用它。
期待帮助。提前致谢!
python - libcst:插入新节点会添加内联代码和分号
我正在尝试在分配节点之前引入一个新节点(作为新的代码行)。
使用FlattenSentinel
引入新节点时会出现问题,因为我希望节点是分开的,但 libcst 使用分号 ( ;
) 将它们连接起来,例如:
变成:
重现示例的代码:
我也尝试引入一个新行,但看起来更糟,代码示例:
我想要的结果是将新节点插入现有节点上方(在同一级别),不带分号,如下所示:
这在 libcst 中可能吗?
libcst - 在 Libcst 中向现有的 if elif else 添加额外的 If 节点时出现问题
我是 LibCST 的新手。我正在编写一个工具而不是修改代码。我想将一个 elif (orelse=If) 添加到现有的 If elif else 节点。简单的例子:
我的代码如下所示:
当我执行我得到的代码时:
我不确定是否感到惊讶,因为我没有正确更新。我觉得 Try 块是错误的地方。我做错了什么。我将不胜感激任何见解。
谢谢,安德鲁
python - 如何判断一行Python是否有注释,并将该行拆分为`[code, comment]`
我想知道如何
- 判断(True / False)一行Python代码是否有注释
- 将线分成
code
,comment
例如:
非常简单,但是例如:
不是那么直截了当。我一般不知道该怎么做,这样我就可以做到
来自评论:“你用 libcst 标记了这个。你已经使用那个库给你一个 AST 了吗?”
我曾尝试使用它但失败了,例如:
来自评论:“您是在解析单行代码、函数或类的源代码,还是解析整个模块? ”
我正在解析单行 - 至少这是我的意图。我希望能够遍历文件中的行。我有一个预先存在的过程,它已经迭代了 python 文件的行,但我想扩展它以考虑引发这个问题的评论。
来自评论“您对解析结果的最终目标是什么,只需获取没有评论的源代码?”
不 - 我想要示例中给出的源代码和注释。