equal
deleted
inserted
replaced
|
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())) |