Automatically modernize python syntax [关闭]

问题描述 投票:0回答:1

我正在寻找一种可以自动使我的 python 代码现代化的工具。将 python 版本作为配置的东西,并自动使该版本的代码现代化。

NOT寻找关于这是否是一个好主意的意见。

NOT 寻找关于什么工具最好用的意见。

我正在寻找一些可以用冷、硬、FACTS 支持的选项。

这个问题之前因为“事实”无法用“事实”来回答而被关闭,但我不同意这一点。一个工具要么可以完成我所要求的,要么不能。

例如,使用python 3.9+我们可以转换所有

from typing import List

my_list:List[str] = []

my_list:list[str] = []

使用 python 3.10+ 我们可以转换所有

from typing import Optional

my_optional: Optional[str] = None

my_optional: str | None = None

我确定还有其他语法更新也可以完成。

有什么工具可以做到这一点吗?我查看了 mypy、black 和 flake8,我看不到任何会自动为我转换的东西,甚至没有警告我这些,以便我可以手动更新它们。

python mypy flake8 python-black
1个回答
1
投票

pyupgrade

--py311-plus
选项似乎做我想做的事。

似乎留在未使用的导入中,但使用 autoflake 我可以纠正它们。

另一个选项是 ruff,它完全符合我的要求。

© www.soinside.com 2019 - 2024. All rights reserved.