Spaces:
Running
Running
# Copyright 2008 Armin Ronacher. | |
# Licensed to PSF under a Contributor Agreement. | |
"""Fixer for reduce(). | |
Makes sure reduce() is imported from the functools module if reduce is | |
used in that module. | |
""" | |
from lib2to3 import fixer_base | |
from lib2to3.fixer_util import touch_import | |
class FixReduce(fixer_base.BaseFix): | |
BM_compatible = True | |
order = "pre" | |
PATTERN = """ | |
power< 'reduce' | |
trailer< '(' | |
arglist< ( | |
(not(argument<any '=' any>) any ',' | |
not(argument<any '=' any>) any) | | |
(not(argument<any '=' any>) any ',' | |
not(argument<any '=' any>) any ',' | |
not(argument<any '=' any>) any) | |
) > | |
')' > | |
> | |
""" | |
def transform(self, node, results): | |
touch_import('functools', 'reduce', node) | |