(root)/
Python-3.12.0/
Lib/
lib2to3/
fixes/
fix_input.py
       1  """Fixer that changes input(...) into eval(input(...))."""
       2  # Author: Andre Roberge
       3  
       4  # Local imports
       5  from .. import fixer_base
       6  from ..fixer_util import Call, Name
       7  from .. import patcomp
       8  
       9  
      10  context = patcomp.compile_pattern("power< 'eval' trailer< '(' any ')' > >")
      11  
      12  
      13  class ESC[4;38;5;81mFixInput(ESC[4;38;5;149mfixer_baseESC[4;38;5;149m.ESC[4;38;5;149mBaseFix):
      14      BM_compatible = True
      15      PATTERN = """
      16                power< 'input' args=trailer< '(' [any] ')' > >
      17                """
      18  
      19      def transform(self, node, results):
      20          # If we're already wrapped in an eval() call, we're done.
      21          if context.match(node.parent.parent):
      22              return
      23  
      24          new = node.clone()
      25          new.prefix = ""
      26          return Call(Name("eval"), [new], prefix=node.prefix)