我一直在寻找这个功能,但没有在文档中看到它,所以我打开了一个功能请求。
我很想看到一个修复程序,它采用 Python 2/3 兼容代码并尽可能删除 Python 2 支持。
这个会:
__future__
导入(例如print_function
)from future import standard_library
和standard_library.install_aliases()
行from builtins import *
行from future.utils import python_2_unicode_compatible
如果这样的修复程序已经存在,我很想知道它。
我的一些客户正在使用future
将他们的代码升级到 Python 3,然后不久之后就放弃了对 Python 2 的支持,这样的修复程序对他们非常有帮助。
如果它存在,那么它没有被很好地记录下来。 我不得不手动删除所有这些。 使用自动运行的夹具可能带有诸如-3
类的标志,这意味着仅重构 3 合规性并忽略 python2 兼容性会很棒。
我自己做了一些转换并将它们打包成一个脚本。 它目前可在此处获得: https :
一个相关的工具,有一些重叠(即__future__
导入):
asottile/pyupgrade:一种工具(和预提交钩子),用于自动升级新版本语言的语法。
其他值得注意的事情:
u
前缀class
定义中删除(object)
super()
调用mock
进口也就是说,我可以将sed
用于standard_library
:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
我计划为:
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
我已经知道 pyupgrade 并使用过它。 这是非常有帮助的。
pyupgrade
(加上预提交钩子)是一个很好的工具。 既然有替代方案,我们可以关闭这个 FR 吗?
最有用的评论
我自己做了一些转换并将它们打包成一个脚本。 它目前可在此处获得: https :