我写了自己的修复程序,我该如何运行它?我没有找到明显的方法来做到这一点。
只有这个:
> cd /usr/lib/python2.7/lib2to3/fixes/
> ln -s path/to/my_fixer.py
然后运行它:
> cd path/to/project
> 2to3 -f my_fixer .
我写了自己的修复程序,我该如何运行它?我没有找到明显的方法来做到这一点。
只有这个:
> cd /usr/lib/python2.7/lib2to3/fixes/
> ln -s path/to/my_fixer.py
然后运行它:
> cd path/to/project
> 2to3 -f my_fixer .
我知道了!(文件: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
/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