sphinx-autoapi seems nicer conceptually (it parses the docs rather
than importing them), but it also generates a ton of warnings, so
leave the default as autodoc.
---
You can see the results of this (for now) at
https://notmuch.readthedocs.io/en/rtdtest/
We'd presumable want to integrate the whole tree somehow into notmuchmail.org
doc/conf.py | 42 ++-
doc/index.rst | 3 +-
doc/python-autoapi.rst| 5 +++
...python-bindings.rst => python-autodoc.rst} | 0
doc/requirements.txt | 2 +
5 files changed, 31 insertions(+), 21 deletions(-)
create mode 100644 doc/python-autoapi.rst
rename doc/{python-bindings.rst => python-autodoc.rst} (100%)
create mode 100644 doc/requirements.txt
diff --git a/doc/conf.py b/doc/conf.py
index 94e266af..c34c03ac 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -4,7 +4,28 @@
import sys
import os
-extensions = [ 'sphinx.ext.autodoc' ]
+location = os.path.dirname(__file__)
+bindings_path = os.path.join(location, '..', 'bindings',
'python-cffi','notmuch2')
+exclude_patterns = ['_build']
+
+# read generated config
+for pathdir in ['.', '..']:
+conf_file = os.path.join(location,pathdir,'sphinx.config')
+if os.path.exists(conf_file):
+with open(conf_file,'r') as infile:
+exec(''.join(infile.readlines()))
+
+if tags.has("AUTOAPI") or os.environ.get('READTHEDOCS') == 'True':
+extensions = [ 'autoapi.extension' ]
+autoapi_dirs = [ bindings_path ]
+autoapi_add_toctree_entry = False
+exclude_patterns.append('python-autodoc.rst')
+elif tags.has('WITH_PYTHON'):
+extensions = [ 'sphinx.ext.autodoc' ]
+sys.path.insert(0, bindings_path)
+exclude_patterns.append('python-autoapi.rst')
+else:
+exclude_patterns.append('python-autodoc.rst', 'python-autoapi.rst')
# The suffix of source filenames.
source_suffix = '.rst'
@@ -16,31 +37,15 @@ master_doc = 'index'
project = u'notmuch'
copyright = u'2009-2020, Carl Worth and many others'
-location = os.path.dirname(__file__)
-
for pathdir in ['.', '..']:
version_file = os.path.join(location,pathdir,'version')
if os.path.exists(version_file):
with open(version_file,'r') as infile:
version=infile.read().replace('\n','')
-# for autodoc
-sys.path.insert(0, os.path.join(location, '..', 'bindings', 'python-cffi',
'notmuch2'))
-
-# read generated config
-for pathdir in ['.', '..']:
-conf_file = os.path.join(location,pathdir,'sphinx.config')
-if os.path.exists(conf_file):
-with open(conf_file,'r') as infile:
-exec(''.join(infile.readlines()))
-
# The full version, including alpha/beta/rc tags.
release = version
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
if tags.has('WITH_EMACS'):
# Hacky reimplementation of include to workaround limitations of
# sphinx-doc
@@ -55,9 +60,6 @@ else:
# the docstring include files
exclude_patterns.append('notmuch-emacs.rst')
-if not tags.has('WITH_PYTHON'):
-exclude_patterns.append('python-bindings.rst')
-
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
diff --git a/doc/index.rst b/doc/index.rst
index a3bf3480..3493d7b4 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -26,7 +26,8 @@ Contents:
man7/notmuch-search-terms
man1/notmuch-show
man1/notmuch-tag
- python-bindings
+ python-autodoc
+ python-autoapi
Indices and tables
==
diff --git a/doc/python-autoapi.rst b/doc/python-autoapi.rst
new file mode 100644
index ..fb968874
--- /dev/null
+++ b/doc/python-autoapi.rst
@@ -0,0 +1,5 @@
+Python Bindings
+===
+
+.. autoapimodule:: notmuch2
+ :members:
diff --git a/doc/python-bindings.rst b/doc/python-autodoc.rst
similarity index 100%
rename from doc/python-bindings.rst
rename to doc/python-autodoc.rst
diff --git a/doc/requirements.txt b/doc/requirements.txt
new file mode 100644
index ..519ccd35
--- /dev/null
+++ b/doc/requirements.txt
@@ -0,0 +1,2 @@
+# for readthedocs, or other standalone builds of the docs.
+sphinx-autoapi
--
2.27.0
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org