diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2008-03-19 04:43:46 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2008-03-19 04:43:46 (GMT) |
commit | 5e37baea8007cb64b65a180e4d6c80de292a8a4a (patch) | |
tree | af8b06bfe03af755de5bf83e9aa01f299186a8f7 /Lib/lib2to3/fixes/fix_methodattrs.py | |
parent | a4d77898db3856cd3d8c9411d024bea88be25b66 (diff) | |
download | cpython-5e37baea8007cb64b65a180e4d6c80de292a8a4a.zip cpython-5e37baea8007cb64b65a180e4d6c80de292a8a4a.tar.gz cpython-5e37baea8007cb64b65a180e4d6c80de292a8a4a.tar.bz2 |
Import lib2to3.
Diffstat (limited to 'Lib/lib2to3/fixes/fix_methodattrs.py')
-rw-r--r-- | Lib/lib2to3/fixes/fix_methodattrs.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/lib2to3/fixes/fix_methodattrs.py b/Lib/lib2to3/fixes/fix_methodattrs.py new file mode 100644 index 0000000..3d0d7d7 --- /dev/null +++ b/Lib/lib2to3/fixes/fix_methodattrs.py @@ -0,0 +1,23 @@ +"""Fix bound method attributes (method.im_? -> method.__?__). +""" +# Author: Christian Heimes + +# Local imports +from . import basefix +from .util import Name + +MAP = { + "im_func" : "__func__", + "im_self" : "__self__", + "im_class" : "__self__.__class__" + } + +class FixMethodattrs(basefix.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())) |