Преобразование строки абстрактного синтаксического дерева (AST) с типом Python Код? - PullRequest
1 голос
/ 11 апреля 2020

Я работаю над разобранной строкой AST кода Python. Сейчас я нахожусь на этапе, когда я хочу преобразовать небольшие древовидные структуры в код для некоторого анализа.

import ast
ast_string = ast.dump(ast.parse("[1,2,3]"))
print(ast_string)
# 'Module(body=[Expr(value=List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load()))])'

Теперь я хочу преобразовать этот Module(body=[Expr(value=List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load()))]) обратно в код.

Пример:

def ast_to_code(ast_string):
   ....

code = ast_to_code(ast_string)
print(code) # [1,2,3]

Заранее спасибо. Я искал по сети, нашел различные библиотеки, которые берут дерево разбора и затем конвертируют его обратно в код. Я не смог найти что-то, что могло бы преобразовать любое дерево AST в строку обратно в код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...