mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00

svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r72491 | benjamin.peterson | 2009-05-08 19:33:27 -0500 (Fri, 08 May 2009) | 7 lines make 2to3 use unicode internally on 2.x This started out as a fix for #2660, but became this large refactoring when I realized the dire state this was in. 2to3 now uses tokenize.detect_encoding to decode the files correctly into unicode. ........ r72492 | benjamin.peterson | 2009-05-08 19:35:38 -0500 (Fri, 08 May 2009) | 1 line remove compat code ........ r72493 | benjamin.peterson | 2009-05-08 19:54:15 -0500 (Fri, 08 May 2009) | 1 line add a test for \r\n newlines ........
33 lines
818 B
Python
33 lines
818 B
Python
# 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 .. import pytree
|
|
from .. import fixer_base
|
|
from ..fixer_util import Name, Attr, touch_import
|
|
|
|
|
|
|
|
class FixReduce(fixer_base.BaseFix):
|
|
|
|
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(u'functools', u'reduce', node)
|