Ruff 格式长行 – 换行符

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

在Python中,ruff格式化程序通常会对超过88个字符的行进行换行(这是默认值,即

line-length = 88
)。不幸的是,ruff 格式化程序以不切实际的方式包装了 pathlib 路径的行。 第二行:

from pathlib import Path
path_save = Path().cwd().parents[1] / "some" / "folder" / "a_very_long_and_lenghtly_file_name.csv"

变成(应用 ruff 格式后):

path_save = (
    Path().cwd().parents[1]
    / "some"
    / "folder"
    / "a_very_long_and_lenghtly_file_name.csv"
)

所需,换行符:

path_save2 = (Path().cwd().parents[1] / "some" / 
"folder" / "a_very_long_and_lenghtly_file_name.csv")

这可以用ruff吗? 行长度文档没有解释换行符放置在哪些位置。我有很多带有这样的 pathlib 路径的 python 文件,并且希望能找到一些很少或只有一个换行符的解决方案。

python line-breaks formatter pathlib ruff
1个回答
0
投票

来自 Ruff 文档

与 Black 一样,Ruff 格式化程序不支持广泛的代码风格配置;然而,与 Black 不同的是,它确实支持配置所需的引号样式、缩进样式、行结尾等。 (参见:配置。)

我对 Ruff 的唯一看法是在语句后面添加

# fmt: skip
或用
# fmt: off
# fmt: on
包围它们,如 Ruff 文档中本节中所述。

这可能看起来像这样

path_save2 = (Path().cwd().parents[1] / "some" / 
"folder" / "a_very_long_and_lenghtly_file_name.csv")  # fmt: skip

或者像这样

# fmt: off
path_save2 = (Path().cwd().parents[1] / "some" / 
"folder" / "a_very_long_and_lenghtly_file_name.csv")
path_save3 = (Path().cwd().parents[1] / "some" / 
"folder" / "a_very_long_and_lenghtly_file_name3.csv")
# fmt: on
© www.soinside.com 2019 - 2024. All rights reserved.