(root)/
Python-3.12.0/
Lib/
lib2to3/
fixes/
fix_methodattrs.py
       1  """Fix bound method attributes (method.im_? -> method.__?__).
       2  """
       3  # Author: Christian Heimes
       4  
       5  # Local imports
       6  from .. import fixer_base
       7  from ..fixer_util import Name
       8  
       9  MAP = {
      10      "im_func" : "__func__",
      11      "im_self" : "__self__",
      12      "im_class" : "__self__.__class__"
      13      }
      14  
      15  class ESC[4;38;5;81mFixMethodattrs(ESC[4;38;5;149mfixer_baseESC[4;38;5;149m.ESC[4;38;5;149mBaseFix):
      16      BM_compatible = True
      17      PATTERN = """
      18      power< any+ trailer< '.' attr=('im_func' | 'im_self' | 'im_class') > any* >
      19      """
      20  
      21      def transform(self, node, results):
      22          attr = results["attr"][0]
      23          new = MAP[attr.value]
      24          attr.replace(Name(new, prefix=attr.prefix))