home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 June / maximum-cd-2011-06.iso / DiscContents / LibO_3.3.1_Win_x86_install_multi.exe / libreoffice1.cab / fix_methodattrs.py < prev    next >
Encoding:
Python Source  |  2011-02-15  |  587 b   |  24 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.     PATTERN = """
  17.     power< any+ trailer< '.' attr=('im_func' | 'im_self' | 'im_class') > any* >
  18.     """
  19.  
  20.     def transform(self, node, results):
  21.         attr = results["attr"][0]
  22.         new = MAP[attr.value]
  23.         attr.replace(Name(new, prefix=attr.get_prefix()))
  24.