主題を達成する方法の模索。
やりたいこと
namedtuple
のドキュメントをdocstringから作成したい。
sample.py
NamedTuple = namedtuple("NamedTuple", "aaa bbb ccc")
上記のようなnamedtuple
を定義するとき、
docstringをどうやって書けばいいのかという課題。
試行その1
前述のNamedTuple
を、そのままautoclass
を使いsphinx
でドキュメントをmake
するとどうなるか。
.. autoclass:: simplesqlite.sample.NamedTuple
:members:
:undoc-members:
以下のようになった。
メンバが表示されるが、メンバの説明が自動出力されるもののみだと情報量が無い。
試行その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
"""
これをsphinx
でmake
すると
これにメンバの説明を追記すれば良さそうだ。
最終
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``.
"""