Использование сопоставления 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.

0 ответов

Другие вопросы по тегам