1234567891011121314151617181920212223242526272829303132333435 |
- # 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)
|