2

我正在针对 Python 脚本运行 Black 代码格式化程序,但是它不会重新格式化文档字符串的行长。例如,给定以下代码:

def my_func():
    """
    This is a really long docstring. This is a really long docstring. This is a really long docstring. This is a really long docstring. This is a really long docstring. This is a really long docstring.
    """
    return

对这个脚本运行 Black 时,行长不会改变。在运行 Black 时如何确保文档字符串被格式化?

4

1 回答 1

2

维护者在这里!:海浪:

简短的回答是不,您目前无法配置 Black 来修复文档字符串中的行长问题。

Black 不太可能拆分或合并文档字符串中的行,因为风险太大,结构化数据可以并且确实存在于文档字符串中。虽然我希望添加的换行符不会破坏消费者,但它仍然是一个有效的担忧。

目前有一个未解决的问题要求这样做(尽管它还希望文档字符串和字符串的行长度限制为 79)GH-2289。您还可以阅读GH-1713,它是关于拆分评论的(同样,维护者的感受也很复杂)。

目前,也许您可​​以查看似乎包含文档字符串的https://github.com/PyCQA/docformatter--wrap-descriptions (请参阅和--wrap-summaries选项)


PS 如果你好奇我们是否会添加一个标志来分割文档字符串或注释,这又是不可能的,因为我们试图最小化格式可配置性。特别是因为预先存在的标志只禁用了布莱克风格的某些元素(除非 --line-length 存在,因为没有真正的共识应该是什么)。随意在链接的问题中陈述您的论点!

于 2022-02-08T21:36:40.123 回答