18

これは、 Sphinxに関する以前の質問の一般化されたバージョンです。

クラスと関数を含むモジュールまたはパッケージを再帰的に自動文書化する方法はありますか?

関数ごとにautofunctionorディレクティブを追加するのはばかげていると思います。automoduleプロセスを自動化する方法が必要です。そうしないと、Sphinxを使用する意味がまったくわかりません。

明確化: 代わりに:

.. automodule:: segments.segments

    .. autoclass:: segments.segments.Seg

        .. automethod:: Seg.method_1

        .. automethod:: Seg.method_2

        .. automethod:: Seg.method_3

        .......

        .. automethod:: Seg.method_n

すべてのメソッド名を手動でカットアンドペーストし、それに応じてドキュメントを更新する必要があるため、次のようなコマンドが必要です。

.. automodule:: segments.segments

    .. autoclass:: segments.segments.Seg

        .. MAGIC COMMAND: Automatically print the docstrings and signatures 
           of all Seg() methods.
4

5 に答える 5

37

を使用しております

.. automodule:: module
   :members:
于 2009-08-25T13:26:39.013 に答える
26

作業を簡単にするために、このスクリプトを使用できます(最後のバージョンについてはページの下部を参照してください): http: //bitbucket.org/birkenfeld/sphinx/issue/98/add-the-autogenerate-script-to-sphinx

このスクリプトは、パッケージ/モジュールを解析し、docstringからドキュメントを構築するために必要なすべての残りのファイルを生成します。

私はこのスクリプトの原作者です。

アップデート

このスクリプトは、apidocとしてSphinx1.1の一部になりました。

于 2009-08-25T14:37:36.963 に答える
16

彼の回答で言及されているEtienneのスクリプトは、sphinx-apidocとしてSphinxに統合されました。OPが望んでいることを正確に実行します。Sphinx 1.1でリリースされる予定であるか、Hgリポジトリから入手できます。

https://bitbucket.org/birkenfeld/sphinx

それは私にとって美しく機能します。ドキュメントはこう読んでいます:

> sphinx-apidoc --help
Usage: sphinx-apidoc-script.py [options] -o <output_path> <module_path>
           [exclude_paths, ...]

Look recursively in <module_path> for Python modules and packages and create
a reST file with automodule directives per package in the <output_path>.
于 2011-02-28T11:22:50.407 に答える
0

関数ごとにautofunctionまたはautomoduleディレクティブを追加するのはばかげていると思います。プロセスを自動化する方法が必要です。そうしないと、Sphinxを使用する意味がまったくわかりません。

docstringからドキュメントを生成することに特化したEpydocをお勧めします。

于 2009-08-25T13:32:26.867 に答える
-9

オートモジュールを指定するよりも簡単にしたいですか?大規模なライブラリの場合でも、すべてのモジュール名を入力するのに5分の作業量がかかります。

そうする理由は、Sphinxが文書化する必要があるものをほとんど推測しないためです。

モジュールを検索してautomoduleディレクティブを使用するautopackageを作成することもできます(automoduleがまだそれを行っていない場合)。

于 2009-08-25T12:47:54.990 に答える