ペップ257言う:
ドキュメント文字列処理ツールは、ドキュメント文字列の 2 行目以降の行から、最初の行以降のすべての非空白行の最小インデントと同じ量のインデントを削除します。ドキュメント文字列の最初の行 (つまり、最初の改行まで) のインデントは重要ではないため削除されます。ドキュメント文字列の後の行の相対的なインデントは保持されます。ドキュメント文字列の先頭と末尾の空白行は削除する必要があります。
このアルゴリズムを実装する関数trim
は PEP に表示されます。
docstringのフォーマット方法を尋ねる質問が見つかり、PEP 257が参照されています(例:これ)。また、ドキュメント文字列がPEP 257に準拠しているかどうかを確認するツールに関する情報もいくつかあります(例:これ)。私が見つけられないのは、実際にはPEP 257 で定義されている方法で docstring を処理する「docstring 処理ツール」 --- 少なくとも、この docstring 処理機能を直接利用できるようにするツールは見つかりません。
PEP 257 に示されている関数はtrim
標準ライブラリに存在しますか? もちろん、関数を自分でファイルに貼り付けることもできますが、この機能が必要な他のコンピュータを使用している場合は、常に PEP からコピーして貼り付けるのではなく、標準ライブラリから使用することを好みます。関数が BDFL によって共同執筆された PEP にあることを考えると、これを行う公式または準公式のライブラリがあるはずだと考えていました。
私がこれを必要とする理由は、クラス/関数のドキュメント文字列の Python 内部の再フォーマットを行うデコレータを作成するためです。HTML やその他のものを生成したいわけではなく、実際のオブジェクトの実際のドキュメント文字列を変更したいだけです。Python__doc__
オブジェクトのプレーンテキスト属性を取得し、それを Python オブジェクトのプレーンテキスト__doc__
属性として機能するものに再フォーマットします。
ベストアンサー1
関連する質問の答えを探していたところ、この質問の答えを見つけることができました。アルゴリズムは次のようにtrim
実装されています。inspect.cleandoc
、よりによって場所。