
isort 是一个强大的 python 导入语句排序工具,它能自动将导入语句按字母顺序分组并排序。当与 black 这样的代码格式化工具结合使用时,isort 通常会遵循 black 的风格规范,包括行长限制和多行输出模式。然而,默认配置下,有时 isort 可能会将导入语句格式化为多行形式,即使单行并未超出设定的行长限制。这通常是由于 multi_line_output 参数的默认值或与 force_grid_wrap 参数的交互导致的。
例如,以下导入语句:
from tableau_api_lib.utils.querying import get_datasources_dataframe, get_workbooks_dataframe
在某些配置下,可能会被格式化为:
from tableau_api_lib.utils.querying import (
get_datasources_dataframe,
get_workbooks_dataframe,
)而我们的目标是,只有当单行导入语句的长度超过指定阈值(如120字符)时,才进行换行。
为了实现导入语句的按需换行,我们应该在项目的 pyproject.toml 文件中配置 isort。这种方式是管理项目级工具配置的最佳实践,因为它能确保所有开发者和 CI/CD 环境使用相同的规则。
在 pyproject.toml 中添加或修改 [tool.isort] 部分,示例如下:
[tool.isort] line_length = 120 multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true
各项参数解释:
通过以上配置,isort 将在命令行运行(如 isort --line-length 120 --profile black .)时,严格遵循这些规则。
为了让 VSCode 在保存时自动应用 isort 的这些配置,我们需要调整 settings.json。关键在于让 VSCode 的 Python 扩展(ms-python.python)能够识别并使用 pyproject.toml 中的 isort 配置,而不是通过 VSCode 自己的 isort.args 来传递参数。
移除 isort.args 配置,并确保 source.organizeImports 被启用。修改后的 settings.json 片段如下:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.python", // 确保使用Python扩展作为默认格式化器
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": true // 启用保存时组织导入
}
}
// 移除或注释掉任何 isort.args 配置,例如:
// "isort.args": ["--line-length", "120", "--profile", "black"]
}注意事项:
通过在 pyproject.toml 文件中精细配置 isort 的 multi_line_output = 3 和 force_grid_wrap = 0 参数,我们可以有效地控制导入语句的换行行为,使其仅在超出指定行长时才进行多行格式化。结合优化的 VSCode 设置,移除冗余的 isort.args,可以确保开发环境与项目级配置保持一致。这种方法不仅提升了代码格式化的一致性,也优化了开发体验,使得代码风格管理更加高效和自动化。
以上就是isort 精细化配置:实现按需导入语句换行与VSCode集成的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号