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

PiR*_*iRK 9 python isort

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

这会产生垂直悬挂缩进(isort 文档类型输出中的模式 3:

from third_party import (
    lib1,
    lib2,
    lib3,
    lib4,
)
Run Code Online (Sandbox Code Playgroud)

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

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

from third_party import (
    lib1,
)
Run Code Online (Sandbox Code Playgroud)

小智 9

您应该--force-grid-wrap 2在 CLI 中使用该标志或在设置文件中设置,例如pyproject.tomloption force_grid_wrap = 2。这将强制 isort 为 2 个或更多导入生成多行输出,无论行长度如何。有关此选项的更多信息