| """Fixer that changes input(...) into eval(input(...)).""" |
| # Author: Andre Roberge |
| |
| # Local imports |
| from .. import fixer_base |
| from ..fixer_util import Call, Name |
| from .. import patcomp |
| |
| |
| context = patcomp.compile_pattern("power< 'eval' trailer< '(' any ')' > >") |
| |
| |
| class FixInput(fixer_base.BaseFix): |
| BM_compatible = True |
| PATTERN = """ |
| power< 'input' args=trailer< '(' [any] ')' > > |
| """ |
| |
| def transform(self, node, results): |
| # If we're already wrapped in a eval() call, we're done. |
| if context.match(node.parent.parent): |
| return |
| |
| new = node.clone() |
| new.prefix = u"" |
| return Call(Name(u"eval"), [new], prefix=node.prefix) |