我正在为lib2to3编写自定义修复程序,而不是将代码迁移到Python 3,而是利用lib2to3的源代码解析功能,而不是使用正则表达式等手动解析源代码。
此时我已经编写了一个基本修复程序,但我不确定如何将其实际添加到lib2to3。我只想使用单一修复程序,我不打算将任何代码迁移到Python 3.这应该不是问题,因为可以指定只使用显式传递的修复程序:
2to3 -f fixer_name.py example.py
我当然可以将修复程序添加到修复程序路径:
lib2to3/fixes/
但该脚本旨在作为一种工具分发,供用户迁移使用弃用导入格式的旧源代码。很遗憾,缺少lib2to3的文档,我发现only writeup建议使用已弃用的distribute包。
欢迎任何建议,谢谢。
答案 0 :(得分:1)
下面回答了问题(基本上复制2to3驱动程序代码并传入您自己的包路径):
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'))
将fix_my_fixer.py放在包目录中并使用
运行./ my2to3 -f my_fixer -w project