(root)/
Python-3.12.0/
Lib/
lib2to3/
fixes/
fix_reduce.py
       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 ESC[4;38;5;81mFixReduce(ESC[4;38;5;149mfixer_baseESC[4;38;5;149m.ESC[4;38;5;149mBaseFix):
      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('functools', 'reduce', node)