
isort 是一个流行的 python 库,用于自动排序和格式化导入语句。它提供了多种输出样式(multi_line_output),允许开发者根据团队规范或个人偏好来调整导入的显示方式。然而,在某些情况下,isort 可能会在导入语句未达到指定行长度限制时,也将其自动拆分为多行,这可能与预期行为不符。
例如,原始导入语句可能如下:
import pandas as pd from tableau_api_lib.utils.querying import get_datasources_dataframe, get_workbooks_dataframe
在某些默认或不当配置下,isort 可能会将其格式化为:
import pandas as pd
from tableau_api_lib.utils.querying import (
get_datasources_dataframe,
get_workbooks_dataframe,
)而我们期望的是,只有当导入语句的长度超过设定的 line_length(例如 120 字符)时,才将其拆分为多行。
为了实现基于行长度的条件式多行导入格式化,我们需要在项目的 pyproject.toml 文件中为 isort 进行详细配置。pyproject.toml 是现代 Python 项目中管理工具配置的首选方式,它能确保项目内所有开发者和自动化工具(如 GitHub Actions)使用一致的格式化规则。
立即学习“Python免费学习笔记(深入)”;
以下是推荐的 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
各项配置的解释如下:
from some_module import (
item_one,
item_two,
)通过这些配置,isort 将只在导入语句的长度超过 120 字符时,才将其拆分为 multi_line_output = 3 样式。
为了让 VSCode 在保存文件时自动应用上述 isort 配置,我们需要调整 settings.json 文件。关键在于让 VSCode 知道 isort 的配置信息来自 pyproject.toml,而不是直接在 VSCode 中重复定义。
请更新您的 VSCode settings.json 文件,如下所示:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.python",
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
}各项配置的解释如下:
重要提示:
经过上述配置后,当您在 VSCode 中保存 Python 文件时,isort 将按照 pyproject.toml 中定义的规则进行导入格式化。
对于长度未超过 120 字符的导入语句:
from tableau_api_lib.utils.querying import get_datasources_dataframe, get_workbooks_dataframe
它将保持在单行,因为 force_grid_wrap = 0 阻止了不必要的换行。
对于长度超过 120 字符的导入语句: 它将被自动拆分为多行,并采用 multi_line_output = 3 定义的垂直悬挂缩进样式。
这种配置方法不仅在本地开发环境中提供了智能的格式化体验,还能通过在 CI/CD 流水线(如 GitHub Actions)中使用 isort --check . 命令,确保整个团队的代码库都遵循相同的导入格式化标准。
通过在 pyproject.toml 文件中精确配置 isort 的 line_length、multi_line_output 和 force_grid_wrap 等参数,并配合 VSCode 的 source.organizeImports 功能,我们能够实现 Python 导入语句的条件式多行格式化。这不仅提高了代码的可读性,也确保了团队内部代码风格的一致性,从而提升了开发效率和代码质量。
以上就是Python isort 配置:实现基于行长度的条件式多行导入格式化的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号