""" Fixer for input. Does a check for `from builtins import input` before running the lib2to3 fixer. The fixer will not run when the input is already present. this: a = input() becomes: from builtins import input a = eval(input()) and this: from builtins import input a = input() becomes (no change): from builtins import input a = input() """ import lib2to3.fixes.fix_input from lib2to3.fixer_util import does_tree_import class FixInput(lib2to3.fixes.fix_input.FixInput): def transform(self, node, results): if does_tree_import('builtins', 'input', node): return return super(FixInput, self).transform(node, results)