主題を達成する方法の模索。
やりたいこと
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``.
"""


