環境

  • Python 3.6
  • sphinx: 1.8.5

背景

PythonのdocstringをRead the Docs に公開しています。

ソースコードは以下の通りです。

models.py

Accountという型ヒントのエイリアスを定義して、docstringで詳細を説明しています。

Account = Dict[str, Any]
"""


Kyes of Dict

* account_id: str

* user_id: str

* username: str

* email: str

* lang: str

* keylayout: str

* authority: AccountAuthority

* updated_datetime: datetime


"""

conf.py

https://github.com/kurusugawa-computer/annofab-api-python-client/blob/dd7d997140060361823d13dab1698cd2fd82aa80/docs/conf.py

# -*- coding: utf-8 -*-
import os
import sys
import annofabapi

sys.path.insert(0, os.path.abspath('../'))

project = 'annofabapi'
copyright = '2019, yuji38kwmt'
author = 'yuji38kwmt'

version = annofabapi.__version__
release = annofabapi.__version__

extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode']

templates_path = ['_templates']

source_suffix = '.rst'

master_doc = 'index'

language = None

exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

pygments_style = None

html_theme = 'alabaster'

html_sidebars = {
    '**': ['localtoc.html', 'relations.html', 'links.html','searchbox.html']
}

html_copy_source=True

html_show_sourcelink=True

html_logo = "img/logo_landscape.png"

html_favicon = "img/favicon.ico"

htmlhelp_basename = 'annofabapidoc'


latex_elements = {
}

latex_documents = [
    (master_doc, 'annofabapi.tex', 'annofabapi Documentation',
     'yuji38kwmt', 'manual'),
]


man_pages = [
    (master_doc, 'annofabapi', 'annofabapi Documentation',
     [author], 1)
]

texinfo_documents = [
    (master_doc, 'annofabapi', 'annofabapi Documentation',
     author, 'annofabapi', 'One line description of project.',
     'Miscellaneous'),
]

epub_title = project

epub_exclude_files = ['search.html']

docs/Makefile

https://github.com/kurusugawa-computer/annofab-api-python-client/blob/dd7d997140060361823d13dab1698cd2fd82aa80/docs/Makefile

# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS    =
SPHINXBUILD   = sphinx-build
SOURCEDIR     = .
BUILDDIR      = _build

# Put it first so that "make" without argument is like "make help".
help:
    @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
    @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

質問

以下のコマンドでHTMLドキュメントを生成しましたが、AccountのdocstringはHTMLドキュメントに反映されていませんでした。

$ pipenv shell
$ cd docs
$ make html

画像の説明をここに入力

しかし、Read the Docsにアップしたドキュメントでは、正しくdocstringの内容がドキュメントに反映されていました。
https://annofab-api-python-client.readthedocs.io/en/latest/annofabapi.html#annofabapi.models.Account

画像の説明をここに入力

  • ローカル環境で$ make docsを実行しても、Accountのdocstringが出力されないのは、なぜでしょうか?
  • なぜ、Read the Docsでは正しく表示されたのでしょうか?

参考までにRead the Docsのビルド結果のリンクを掲載します。
https://readthedocs.org/api/v2/build/9376340.txt