2013-05-14 15 views
14

PEP 257言う:標準ライブラリのPEP 257 docstring trim?

ドキュメント文字列処理ツールは、最初の行の後に、すべての非空白行の最小インデントに等しい、ドキュメンテーション文字列の第二及び更なる株からインデントの均一な量を取り除くであろう。ドキュメントストリングの最初の行(つまり、最初の改行まで)のインデントは重要ではなく、削除されます。 docstringの後の行の相対インデントは保持されます。空白行は、ドキュメントストリングの先頭と末尾から削除する必要があります。

このアルゴリズムを実装する関数trimがPEPに表示されます。

人々がドキュメントストリングのフォーマット方法を尋ねるところでは、PEP 257(例:this)を参照しています。また、ドキュメントストリングがPEP 257(例:this)に従うようにするツールについての情報もあります。私が見つけられないのは、実際にであるPythonライブラリがの "docstring processing tool"であり、PEP 257で定義された方法でdocstringを処理する---あるいは少なくともこのdocstring処理を行うツールが見つかりません機能を直接利用できます。

PEP 257に表示されているtrimの機能が標準ライブラリに存在しますか?明らかに私はファイルに自分自身を貼り付けることができますが、PEPからコピーして貼り付けるのではなく、この機能を必要とする他のコンピュータを使用している場合は、標準ライブラリから使用することをお勧めします。その機能がBDFLによって共同編集されたPEPにあることを考えれば、これを行う公式または半公式のライブラリがいくつか存在すると思います。

私が望むのは、クラス/関数のドキュメントストリングをPython内部で再フォーマットするデコレータを書くことです。私はHTMLやその他のものを生成したくありません。実際のオブジェクトの実際のドキュメントストリングを変更したいだけです。私は、Pythonオブジェクトのプレーンテキストの__doc__属性を取り、Pythonオブジェクトのプレーンテキストの__doc__属性として機能するものに再フォーマットしたいと考えています。

+0

まあ、「sphinx」、「pydoc」などはすべてこれを行うつもりです。 –

+0

@Lattyware:少し質問を明確にしました。彼らはそれをするかもしれませんが、私がドキュメントから見る限り、彼らははるかに重量のある処理の一部としてそれを行い、docstringの簡単な操作のためのインターフェイスを提供しません。彼らはHTMLなどを生成することを目指しており、平文のドキュメントストリングを直接作成する方法を提供していないようです。 – BrenBarn

+0

私はまだあなたがここで何を意味しているのか理解していませんが、スフィンクスがしていることのかなりの部分は再構成されたテキストパーサー(スフィンクスによって提供される特別な拡張機能を使用しています)にテキストを渡すことです。方法。 –

答えて

21

関連する質問への回答を探す際に、私はこの回答を見つけることができました。 trimアルゴリズムは、すべての場所のinspect.cleandocに実装されています。

関連する問題