123456789101112131415161718192021222324252627282930313233343536 |
- """Fixer for reload().
- reload(s) -> importlib.reload(s)"""
- # Local imports
- from .. import fixer_base
- from ..fixer_util import ImportAndCall, touch_import
- class FixReload(fixer_base.BaseFix):
- BM_compatible = True
- order = "pre"
- PATTERN = """
- power< 'reload'
- trailer< lpar='('
- ( not(arglist | argument<any '=' any>) obj=any
- | obj=arglist<(not argument<any '=' any>) any ','> )
- rpar=')' >
- after=any*
- >
- """
- def transform(self, node, results):
- if results:
- # I feel like we should be able to express this logic in the
- # PATTERN above but I don't know how to do it so...
- obj = results['obj']
- if obj:
- if (obj.type == self.syms.argument and
- obj.children[0].value in {'**', '*'}):
- return # Make no change.
- names = ('importlib', 'reload')
- new = ImportAndCall(node, results, names)
- touch_import(None, 'importlib', node)
- return new
|