当一行中有多个导入时,如何使 isort 始终产生多行输出?

How to make isort always produce multi-line output when there are multiple imports on a line?

我目前在我的项目中使用 isort --profile=black --line-length=79 作为 python 个文件的 linter。

这会产生垂直悬挂缩进(isort's documentation 类输出中的模式 3:

from third_party import (
    lib1,
    lib2,
    lib3,
    lib4,
)

不过,这种多行模式仅适用于行长超过 79 个字符的情况。有没有一种模式,无论行有多长,只要在同一行上有两个或多个导入,就会导致多行输出?

我尝试用 isort -m=3 --trailing-comma --line-length=1 破解它,但较短的行长度会导致多行输出,即使只有一个导入,我不希望这样:

from third_party import (
    lib1,
)

您应该在 CLI 中使用 --force-grid-wrap 2 标志或在设置文件中设置 pyproject.toml 选项 force_grid_wrap = 2。这将强制 isort 为 2 个或多个导入生成多行输出,而不管行长度如何。 More info about this option