LoginSignup
4
7

More than 5 years have passed since last update.

namedtupleのドキュメントをsphinxで作成するためのdocstringの書き方

Posted at

主題を達成する方法の模索。

やりたいこと

namedtupleのドキュメントをdocstringから作成したい。

sample.py
NamedTuple = namedtuple("NamedTuple", "aaa bbb ccc")

上記のようなnamedtupleを定義するとき、
docstringをどうやって書けばいいのかという課題。

試行その1

前述のNamedTupleを、そのままautoclassを使いsphinxでドキュメントをmakeするとどうなるか。

.. autoclass:: simplesqlite.sample.NamedTuple
    :members:
    :undoc-members:

以下のようになった。
メンバが表示されるが、メンバの説明が自動出力されるもののみだと情報量が無い。

ss_0.png

試行その2

同じ課題を抱えている人がいた。

Adding docstrings to namedtuples in Python? - Stack Overflow
http://stackoverflow.com/questions/1606436/adding-docstrings-to-namedtuples-in-python

複数のやり方が回答されている。
namedtupleを継承したクラスを定義して、クラスにdocstringを書く方法をやってみる。

class NamedTupleWithDocstring1(namedtuple("NamedTuple", "aaa bbb ccc")):
    """
    hogehoge
    """

これをsphinxmakeすると

ss_1.png

これにメンバの説明を追記すれば良さそうだ。

最終

class NamedTupleWithDocstring2(namedtuple("NamedTuple", "aaa bbb ccc")):
    """
    hogehoge

    .. py:attribute:: aaa

        Description of the ``aaa``.

    .. py:attribute:: bbb

        Description of the ``bbb``.

    .. py:attribute:: ccc

        Description of the ``ccc``.
    """

ss_2.png

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7