diff options
Diffstat (limited to 'Lib/lib2to3/fixes/fix_funcattrs.py')
-rw-r--r-- | Lib/lib2to3/fixes/fix_funcattrs.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/lib2to3/fixes/fix_funcattrs.py b/Lib/lib2to3/fixes/fix_funcattrs.py new file mode 100644 index 0000000..a9ba125 --- /dev/null +++ b/Lib/lib2to3/fixes/fix_funcattrs.py @@ -0,0 +1,19 @@ +"""Fix function attribute names (f.func_x -> f.__x__).""" +# Author: Collin Winter + +# Local imports +from . import basefix +from .util import Name + + +class FixFuncattrs(basefix.BaseFix): + PATTERN = """ + power< any+ trailer< '.' attr=('func_closure' | 'func_doc' | 'func_globals' + | 'func_name' | 'func_defaults' | 'func_code' + | 'func_dict') > any* > + """ + + def transform(self, node, results): + attr = results["attr"][0] + attr.replace(Name(("__%s__" % attr.value[5:]), + prefix=attr.get_prefix())) |