Python 黑色代码格式化程序不格式化文档字符串行长度

Python Black code formatter doesn't format docstring line length

我是 运行 针对 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 不太可能拆分或合并文档字符串中的行,因为这太冒险了,结构化数据可以而且确实存在于文档字符串中。虽然我希望添加的换行符不会打扰消费者,但它仍然是一个合理的问题。

目前有一个悬而未决的问题要求这样做(尽管它也希望文档字符串和字符串的行长度限制为 79)GH-2289. You can also read GH-1713 这是关于拆分评论的(并且维护者同样有复杂的感受)。

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


P.S。如果您好奇我们是否会添加一个标志来拆分文档字符串或评论,这又是不太可能的,因为我们试图最小化格式的可配置性。特别是 pre-existing 标志仅禁用黑色风格的某些元素(除非 --line-length 存在,因为没有真正的共识它应该是什么)。请随意在链接的问题中陈述您的论点!