Spaces:
Build error
Build error
"""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 | |