Python-future: 修复程序从未来代码中删除 __future__/future 导入

创建于 2019-05-28  ·  5评论  ·  资料来源: PythonCharmers/python-future

我一直在寻找这个功能,但没有在文档中看到它,所以我打开了一个功能请求。

我很想看到一个修复程序,它采用 Python 2/3 兼容代码并尽可能删除 Python 2 支持。

这个会:

  • 删除不必要的__future__导入(例如print_function
  • 删除from future import standard_librarystandard_library.install_aliases()
  • 删除from builtins import *
  • 删除from future.utils import python_2_unicode_compatible

如果这样的修复程序已经存在,我很想知道它。

我的一些客户正在使用future将他们的代码升级到 Python 3,然后不久之后就放弃了对 Python 2 的支持,这样的修复程序对他们非常有帮助。

futurize script help wanted unscheduled wontfix / cantfix

最有用的评论

我自己做了一些转换并将它们打包成一个脚本。 它目前可在此处获得: https :

所有5条评论

如果它存在,那么它没有被很好地记录下来。 我不得不手动删除所有这些。 使用自动运行的夹具可能带有诸如-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 吗?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

wagnerpeer picture wagnerpeer  ·  12评论

e-rk picture e-rk  ·  14评论

foreignmeloman picture foreignmeloman  ·  3评论

ankostis picture ankostis  ·  4评论

wimglenn picture wimglenn  ·  5评论