home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Bureautique / OpenOffice / Apache_OpenOffice_4.1.1_Win_x86_install_fr.exe / openoffice1.cab / fix_reduce.py < prev    next >
Text File  |  2014-07-29  |  839b  |  36 lines

  1. # Copyright 2008 Armin Ronacher.
  2. # Licensed to PSF under a Contributor Agreement.
  3.  
  4. """Fixer for reduce().
  5.  
  6. Makes sure reduce() is imported from the functools module if reduce is
  7. used in that module.
  8. """
  9.  
  10. from lib2to3 import fixer_base
  11. from lib2to3.fixer_util import touch_import
  12.  
  13.  
  14.  
  15. class FixReduce(fixer_base.BaseFix):
  16.  
  17.     BM_compatible = True
  18.     order = "pre"
  19.  
  20.     PATTERN = """
  21.     power< 'reduce'
  22.         trailer< '('
  23.             arglist< (
  24.                 (not(argument<any '=' any>) any ','
  25.                  not(argument<any '=' any>) any) |
  26.                 (not(argument<any '=' any>) any ','
  27.                  not(argument<any '=' any>) any ','
  28.                  not(argument<any '=' any>) any)
  29.             ) >
  30.         ')' >
  31.     >
  32.     """
  33.  
  34.     def transform(self, node, results):
  35.         touch_import(u'functools', u'reduce', node)
  36.