2013-05-14 26 views
14

PEP 257说:标准库中的PEP 257文档字符串修剪?

文档字符串处理工具将剥离从文档字符串的第二和进一步的线,等于第一行之后的所有非空行的最小凹陷压痕均匀量。文档字符串的第一行(即,直到第一个换行符)的任何缩进都是不重要的,并且被删除。保留文档字符串中后面行的相对缩进。空白行应从文档字符串的开头和结尾删除。

然后在PEP中显示实现该算法的功能trim

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

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

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

+0

那么,猜测,'sphinx','pydoc'等人都会这样做。 – 2013-05-14 02:39:58

+0

@Lattyware:我澄清了一下我的问题。他们可能会这样做,但就我从文档中看到的情况而言,他们将其作为更重量级处理的一部分,并且不提供任何界面来简单处理文档字符串。它们旨在生成HTML等,并且似乎没有提供直接明了纯文本文档字符串的方法。 – BrenBarn 2013-05-14 02:47:15

+0

我仍然无法理解你在这里的意思,但狮身人面像所做的很大一部分是通过重构文本解析器(通过sphinx提供的一些特殊扩展)传递你的文本,所以你可以真正做你想做的任何事情,办法。 – 2013-05-14 03:35:33

回答

21

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