Python 3.9+astфункция
ast.main()
вспомогательные функции
Точка входа командной строки python -m ast: разбирает файл или stdin и печатает дерево через dump с отступами. Есть с 3.9.
Синтаксис
python -m ast [-m mode] [-a] [-i indent] [infile]
Сама функция в документации не описана — описана команда python -m ast файл.py, её и используют. main читает аргументы из sys.argv (с 3.14 можно передать список args), печатает в stdout и ничего не возвращает. Вывод — тот же ast.dump, поэтому и он различается между версиями; с 3.14 добавлены ключи --feature-version, -O и --show-empty, с 3.15 вывод в терминале подсвечивается.
Примеры
import ast, contextlib, io, sys
with open('demo.py', 'w', encoding='utf-8') as f:
f.write('x = 1\n')
sys.argv = ['ast', 'demo.py']
buf = io.StringIO()
with contextlib.redirect_stdout(buf):
ast.main()
print(buf.getvalue().splitlines()[0]) # → Module(
print('Assign(' in buf.getvalue()) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности