Использование сопоставления LibCST
Скажем, у вас есть трансформатор:
class Transformer(cst.CSTTransformer):
def on_leave(self, original_node: CSTNodeT,
updated_node: CSTNodeT) -> Union[CSTNodeT, RemovalSentinel]:
# Visit line nodes with print function calls
if not isinstance(updated_node, SimpleStatementLine):
return updated_node
original_line_node = original_node
line_node = updated_node
if not isinstance(line_node.body[0], Expr):
return updated_node
node = line_node.body[0].value
original_node = original_node.body[0].value
if not (isinstance(node, Call) and node.func.value == 'print'):
return line_node
Есть ли способ сделать то же самое с
Matcher
с? Цель состоит в том, чтобы посетить узлы линии, которые содержат вызовы
print
.