Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ast
- # Мы не хотим, чтобы вызов input() сработал
- # и заставил программу зависнуть, разрешаем только chr
- # которым делаются константы
- ENV = {"__builtins__": {}, "chr": chr}
- class Yo(ast.NodeTransformer):
- def visit(self, node):
- if isinstance(node,ast.expr): # проверяем, что узел - выражение
- try:
- # пытаемся вычислить узел целиком
- value = eval(compile(ast.Expression(node),"<x>","eval"), ENV)
- const_node = ast.copy_location(ast.Constant(value), node)
- compile(ast.Expression(const_node),"<x>","eval")
- return const_node
- except Exception:
- pass
- return super().generic_visit(node)
- tree = Yo().visit(ast.parse(open("pyf_cked.py").read()))
- ast.fix_missing_locations(tree)
- print(ast.unparse(tree))
Add Comment
Please, Sign In to add comment