ドキュメント

プロジェクトとコードのドキュメントのどちらにおいても、Pythonの開発者にとって読みやすさは最も大事なことです。 以下に紹介するいくつかのシンプルなプラクティスはあなたや他の人の多くの時間を節約することに役立つでしょう。

プロジェクトのドキュメント

ルートディレクトリにある README ファイルは、一般的な情報を使う人やメンテナーに伝えるものです。 生のテキストか reStructuredText や Markdown のような読みやすいマークアップで書かれている文章にして下さい。 プロジェクトやライブラリの目的を説明する部分(他にもプロジェクトで使う人に教えていたほうがいい情報)や、 ソフトウェアのソースがあるURLや、基本的なクレジット情報が数行ずつあります。 このファイルはコードの読者にとってエントリーポイントになります。

INSTALL ファイルはPythonでは必要ありません。 インストール手順は、 pip install modulepython setup.py install のように一行にまとめて、 README ファイルに書かれることもあります。

LICENSE ファイルは、ソフトウェアが公開される場合にはライセンスを掲載して、指定するように常にして下さい。

TODO ファイルや READMETODO セクションはコードの開発計画を箇条書きして下さい。

CHANGELOG ファイルや README のセクションは最新版のコードの変更点の簡単な概要を書いて下さい。

プロジェクトの公開

プロジェクトによって、ドキュメントは以下のコンポーネントの一部、もしくは全てを含めることができます。 :

  • 手順 は、製品で何ができるかの非常に簡潔な概要を掲載して下さい。 This is the thirty-second pitch for your project.
  • チュートリアル は、より詳しくユースケースを掲載して下さい。 読者はプロトタイプの作業をするためにステップ・バイ・ステップで手順を追っていくでしょう。
  • APIリファレンス は、コード( docstrings を参照して下さい)から生成されます。 公開されていて、利用可能なインターフェース、パラメーター、返り値などの一覧にして下さい。
  • 開発者用のドキュメント は、潜在的なコントリビューター向けにすることを目的とします。 これには、コード規約とプロジェクトの一般的なデザイン戦略を含めることができます。

Sphinx

Sphinx は最も人気のあるPythonのドキュメント作成ツールです。 使って下さい。 HTML、LaTeX (印刷可能なPDF)、マニュアルページ、プレーンテキスト等のフォーマットで出力することができる reStructuredText マークアップ言語に変換されます。

Sphinx ドキュメントを 無料 でホスティングする すばらしい Read The Docs というものがあります。 使って下さい。ソースのレポジトリにコミットフックを設定することができるので、ドキュメントは自動的に再ビルドされます。

Note

Sphinx is famous for its API generation, but it also works well for general project documentation. This Guide is built with Sphinx and is hosted on Read The Docs

reStructuredText

ほとんどのPythonのドキュメントは reStructuredText で書かれています。

The reStructuredText Primer and the reStructuredText Quick Reference should help you familiarize yourself with its syntax.

コードドキュメントのアドバイス

コメントはコードを明確にします。 ハッシュ (#) で始めます。

Pythonでは、 docstrings はモジュール、クラス、関数に記述します。

def square_and_rooter(x):
    """Returns the square root of self times self."""
    ...

一般的には、 comment section of PEP 0008 (Pythonスタイルガイド)に従って下さい。

コードのコメント

コメントコードにトリプルクォートを使わないで下さい。 これは良いプラクティスではありません。なぜなら、

Docstrings and Magic

Some tools use docstrings to embed more-than-documentation behavior, such as unit test logic. Those can be nice, but you won’t ever go wrong with vanilla “here’s what this does.”

Docstringsとブロックコメント

これらは互換性がありません。関数やクラスの先頭のコメントブロックは開発者のメモです。 Docstringは関数やクラスの動作について説明されています。

# This function slows down program execution for some reason.
def square_and_rooter(x):
    """Returns the square root of self times self."""
...

See also

Further reading on docstrings: PEP 0257

他のツール

どこかで以下のものを見ることがあるかもしれませんが、 Sphinx を使って下さい。

Pycco
Pyccoは読み書き可能なプログラミングスタイルのドキュメントのジェネレーターで、node.jsのDoccoの一部です。 コードをHTMLのコードやドキュメントにします。
Ronn
Ronnはunixのマニュアルを生成します。人間が読みやすいテキストファイルをターミナルで表示するよううに変換します。ウェブ用にHTMLにも変換します。
Epydoc
Epydocは廃止されました。代わりに Sphinx を使って下さい。