| Viewing file:  fix_execfile.py (921 B)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
# coding: utf-8"""
 Fixer for the execfile() function on Py2, which was removed in Py3.
 
 The Lib/lib2to3/fixes/fix_execfile.py module has some problems: see
 python-future issue #37. This fixer merely imports execfile() from
 past.builtins and leaves the code alone.
 
 Adds this import line::
 
 from past.builtins import execfile
 
 for the function execfile() that was removed from Py3.
 """
 
 from __future__ import unicode_literals
 from lib2to3 import fixer_base
 
 from libfuturize.fixer_util import touch_import_top
 
 
 expression = "name='execfile'"
 
 
 class FixExecfile(fixer_base.BaseFix):
 BM_compatible = True
 run_order = 9
 
 PATTERN = """
 power<
 ({0}) trailer< '(' args=[any] ')' >
 rest=any* >
 """.format(expression)
 
 def transform(self, node, results):
 name = results["name"]
 touch_import_top(u'past.builtins', name.value, node)
 
 |