(root)/
Python-3.12.0/
Lib/
lib2to3/
fixes/
fix_funcattrs.py
       1  """Fix function attribute names (f.func_x -> f.__x__)."""
       2  # Author: Collin Winter
       3  
       4  # Local imports
       5  from .. import fixer_base
       6  from ..fixer_util import Name
       7  
       8  
       9  class ESC[4;38;5;81mFixFuncattrs(ESC[4;38;5;149mfixer_baseESC[4;38;5;149m.ESC[4;38;5;149mBaseFix):
      10      BM_compatible = True
      11  
      12      PATTERN = """
      13      power< any+ trailer< '.' attr=('func_closure' | 'func_doc' | 'func_globals'
      14                                    | 'func_name' | 'func_defaults' | 'func_code'
      15                                    | 'func_dict') > any* >
      16      """
      17  
      18      def transform(self, node, results):
      19          attr = results["attr"][0]
      20          attr.replace(Name(("__%s__" % attr.value[5:]),
      21                            prefix=attr.prefix))