home *** CD-ROM | disk | FTP | other *** search
- """Fix bound method attributes (method.im_? -> method.__?__).
- """
- # Author: Christian Heimes
-
- # Local imports
- from .. import fixer_base
- from ..fixer_util import Name
-
- MAP = {
- "im_func" : "__func__",
- "im_self" : "__self__",
- "im_class" : "__self__.__class__"
- }
-
- class FixMethodattrs(fixer_base.BaseFix):
- PATTERN = """
- power< any+ trailer< '.' attr=('im_func' | 'im_self' | 'im_class') > any* >
- """
-
- def transform(self, node, results):
- attr = results["attr"][0]
- new = MAP[attr.value]
- attr.replace(Name(new, prefix=attr.get_prefix()))
-