标准库中的PEP 257 docstring trim?

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

PEP 257说:

文档字符串处理工具将从文档字符串的第二行和更多行中删除均匀数量的缩进,等于第一行之后所有非空行的最小缩进。文档字符串第一行中的任何缩进(即,直到第一个换行符)都是无关紧要的并被删除。保留docstring中后续行的相对缩进。应从docstring的开头和结尾删除空行。

然后在PEP中显示实现该算法的函数trim

我可以找到问题,人们会问如何格式化文档字符串,并参考PEP 257(例如,this)。我还看到一些有关工具的信息,这些工具试图确保您的文档字符串遵循PEP 257(例如,this)。我找不到的是任何Python库,它实际上是一个“文档字符串处理工具”,以PEP 257中定义的方式处理文档字符串 - 或者至少,我找不到直接使这个文档字符串处理功能的工具可用。

PEP 257中显示的函数trim是否存在于标准库中?显然我可以自己将函数粘贴到文件中,但如果我使用其他需要此功能的计算机,而不是总是从PEP复制和粘贴,我宁愿在标准库中使用它。鉴于该功能是由BDFL共同编写的PEP,我原以为会有一些官方或半官方图书馆这样做。

我想要这个的原因是编写一个装饰器来做一些Python内部重新格式化类/函数的文档字符串。我不想生成HTML或其他任何东西;我只想更改实际对象的实际文档字符串。我想获取Python对象的纯文本__doc__属性,并将其重新格式化为将用作Python对象的纯文本__doc__属性的内容。

python docstring
1个回答
26
投票

在寻找相关问题的答案时,我设法找到了这个问题的答案。 trim算法在所有地方的inspect.cleandoc中实现。

© www.soinside.com 2019 - 2024. All rights reserved.