如何推出自己的2to3修复工具?

时间:2014-07-01 10:46:28

标签: python python-2to3

我写了自己的修复工具,我该怎么办呢?我没有找到明显的方法来做到这一点。

只有这个:

> cd /usr/lib/python2.7/lib2to3/fixes/
> ln -s path/to/my_fixer.py

然后运行它:

> cd path/to/project
> 2to3 -f my_fixer .

2 个答案:

答案 0 :(得分:4)

我明白了! (档案:my2to3)

#!/usr/bin/env python2.7
import sys
from lib2to3.main import main

sys.path.append('path/to/my_own_package')
sys.exit(main('my_own_package.contained_fixers'))

然后运行它:

> ./my2to3 -f my_fixer -w project

答案 1 :(得分:1)

  • 创建目录/mypath/custom_fixers
  • 生成具有以下内容的文件/mypath/custom_fixers/fix_custom_fixers.py

    from lib2to3.fixer_base import BaseFix
    from lib2to3.pgen2 import token
    
    class FixCustomFixers(BaseFix):
    
        _accept_type = token.NAME
    
        def match(self, node):
            if node.value == 'oldname':
                return True
            return False
    
        def transform(self, node, results):
            node.value = 'newname'
            node.changed()
    
  • 使用以下内容创建文件/mypath/myfixer.py

    import sys
    from lib2to3.main import main
    sys.exit(main('custom_fixers'))
    
  • 运行PYTHONPATH=/mypath python3 /mypath/myfixer.py -f custom_fixers python_file_to_fix.py