home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Bureautique / LibreOffice / LibreOffice_4.3.5_Win_x86.msi / fix_methodattrs.py < prev    next >
Text File  |  2014-12-12  |  606b  |  25 lines

  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 FixMethodattrs(fixer_base.BaseFix):
  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))
  25.